diff --git a/apps/adguardhome/0.107.43/data.yml b/apps/adguardhome/0.107.43/data.yml deleted file mode 100644 index a8632849..00000000 --- a/apps/adguardhome/0.107.43/data.yml +++ /dev/null @@ -1,82 +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 - - default: 23001 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Initial setup web page port - labelZh: 初始设置网页端口 - required: true - rule: paramPort - type: number - - default: 20053 - edit: true - envKey: PANEL_APP_PORT_DNS - labelEn: Plain DNS port - labelZh: 普通 DNS 端口 - required: true - rule: paramPort - type: number - - default: 20067 - edit: true - envKey: PANEL_APP_PORT_DHCP_1 - labelEn: DHCP service port 1 - labelZh: DHCP 服务端口 1 - required: true - rule: paramPort - type: number - - default: 20068 - edit: true - envKey: PANEL_APP_PORT_DHCP_2 - labelEn: DHCP service port 2 - labelZh: DHCP 服务端口 2 - required: true - rule: paramPort - type: number - - default: 20443 - edit: true - envKey: PANEL_APP_PORT_DOH - labelEn: DOH service port - labelZh: DOH 服务端口 - required: true - rule: paramPort - type: number - - default: 853 - edit: true - envKey: PANEL_APP_PORT_DOT - labelEn: DOT service port - labelZh: DOT 服务端口 - required: true - rule: paramPort - type: number - - default: 20784 - edit: true - envKey: PANEL_APP_PORT_QUIC_1 - labelEn: QUIC service port 1 - labelZh: QUIC 服务端口 1 - required: true - rule: paramPort - type: number - - default: 8853 - edit: true - envKey: PANEL_APP_PORT_QUIC_2 - labelEn: QUIC service port 2 - labelZh: QUIC 服务端口 2 - required: true - rule: paramPort - type: number - - default: 5443 - edit: true - envKey: PANEL_APP_PORT_DNS_CRYPT - labelEn: DNS Crypt service port - labelZh: DNS Crypt 服务端口 - required: true - rule: paramPort - type: number \ No newline at end of file diff --git a/apps/adguardhome/0.107.43/docker-compose.yml b/apps/adguardhome/0.107.43/docker-compose.yml deleted file mode 100644 index 609cca59..00000000 --- a/apps/adguardhome/0.107.43/docker-compose.yml +++ /dev/null @@ -1,31 +0,0 @@ -version: '3' -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.43 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/apps/adguardhome/README.md b/apps/adguardhome/README.md deleted file mode 100644 index 4e732143..00000000 --- a/apps/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/apps/adguardhome/data.yml b/apps/adguardhome/data.yml deleted file mode 100644 index 06808c23..00000000 --- a/apps/adguardhome/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: AdGuardHome -tags: - - 安全 -title: 广告拦截程序 -type: 安全 -description: 广告拦截程序 -additionalProperties: - key: adguardhome - name: AdGuardHome - tags: - - Security - shortDescZh: 广告拦截程序 - shortDescEn: Ad blocker - type: tool - crossVersionUpdate: true - limit: 0 - website: https://adguard.com/adguard-home.html - github: https://github.com/AdguardTeam/AdGuardHome - document: https://github.com/AdguardTeam/AdGuardHome/wiki diff --git a/apps/adguardhome/logo.png b/apps/adguardhome/logo.png deleted file mode 100644 index 1144d34f..00000000 Binary files a/apps/adguardhome/logo.png and /dev/null differ diff --git a/apps/adminer/4.8.1/data.yml b/apps/adminer/4.8.1/data.yml deleted file mode 100755 index 4a487df6..00000000 --- a/apps/adminer/4.8.1/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 9853 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/apps/adminer/4.8.1/docker-compose.yml b/apps/adminer/4.8.1/docker-compose.yml deleted file mode 100644 index 72a7abf7..00000000 --- a/apps/adminer/4.8.1/docker-compose.yml +++ /dev/null @@ -1,15 +0,0 @@ -version: '3' -services: - adminer: - image: adminer:4.8.1-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/apps/adminer/README.md b/apps/adminer/README.md deleted file mode 100644 index 7537548f..00000000 --- a/apps/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/apps/adminer/data.yml b/apps/adminer/data.yml deleted file mode 100755 index d0cb0a53..00000000 --- a/apps/adminer/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Adminer -tags: - - 开发工具 -title: PHP 轻量级数据库管理工具 -type: 开发工具 -description: PHP 轻量级数据库管理工具 -additionalProperties: - key: adminer - name: Adminer - tags: - - DevTool - shortDescZh: PHP 轻量级数据库管理工具 - shortDescEn: Database management in a single PHP file - type: tool - crossVersionUpdate: false - limit: 1 - recommend: 0 - website: https://www.adminer.org/ - github: https://github.com/xiahao90/adminer - document: https://github.com/xiahao90/adminer diff --git a/apps/adminer/logo.png b/apps/adminer/logo.png deleted file mode 100644 index 001122ad..00000000 Binary files a/apps/adminer/logo.png and /dev/null differ diff --git a/apps/alist/3.30.0/data.yml b/apps/alist/3.30.0/data.yml deleted file mode 100755 index cdc912e2..00000000 --- a/apps/alist/3.30.0/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 5244 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: WebUI Port - labelZh: 网页端口 - required: true - rule: paramPort - type: number diff --git a/apps/alist/3.30.0/data/data/.gitkeep b/apps/alist/3.30.0/data/data/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/alist/3.30.0/data/mnt/.gitkeep b/apps/alist/3.30.0/data/mnt/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/alist/3.30.0/docker-compose.yml b/apps/alist/3.30.0/docker-compose.yml deleted file mode 100644 index b46bd241..00000000 --- a/apps/alist/3.30.0/docker-compose.yml +++ /dev/null @@ -1,23 +0,0 @@ -version: '3' -services: - alist: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:5244" - volumes: - - ./data/data:/opt/alist/data - - ./data/mnt:/mnt/data - environment: - - PUID=0 - - PGID=0 - - UMASK=022 - image: xhofe/alist:v3.30.0 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true - diff --git a/apps/alist/README.md b/apps/alist/README.md deleted file mode 100644 index 7e180440..00000000 --- a/apps/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/apps/alist/data.yml b/apps/alist/data.yml deleted file mode 100755 index f4dbc453..00000000 --- a/apps/alist/data.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: AList -tags: - - 实用工具 - - 云存储 -title: 支持多存储的文件列表程序 -type: 云存储 -description: 支持多存储的文件列表程序 -additionalProperties: - key: alist - name: AList - tags: - - Storage - - Tool - shortDescZh: 支持多存储的文件列表程序 - shortDescEn: A file list program that supports multiple storage - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 11 - website: https://alist.nn.ci/ - github: https://github.com/alist-org/alist - document: https://alist.nn.ci/zh/guide/ diff --git a/apps/alist/logo.png b/apps/alist/logo.png deleted file mode 100644 index 65f8731b..00000000 Binary files a/apps/alist/logo.png and /dev/null differ diff --git a/apps/answer/1.2.0/data.yml b/apps/answer/1.2.0/data.yml deleted file mode 100644 index 93818f86..00000000 --- a/apps/answer/1.2.0/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 40065 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/apps/answer/1.2.0/docker-compose.yml b/apps/answer/1.2.0/docker-compose.yml deleted file mode 100644 index 8ea5e51a..00000000 --- a/apps/answer/1.2.0/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -version: '3' -services: - answer: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:80" - volumes: - - "./data:/data" - image: answerdev/answer:1.2.0 - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true diff --git a/apps/answer/README.md b/apps/answer/README.md deleted file mode 100644 index 6bfd672f..00000000 --- a/apps/answer/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Answer - -**Answer** 是一款问答形式的知识社区开源软件,你可以使用它快速建立你的问答社区,用于产品技术支持、客户支持、用户交流等。 - -## 版本特性: - -- **提问回答**:完整的提问和回答功能,聚焦主题,支持标准 Markdown 语法 -- **投票决策**:内容的好坏、用户的可信度,都基于声望投票决策 -- **共创协作**:使用内容版本控制,开放式内容审阅,保持内容的更新 -- **内容组织**:通过标签组织碎片化内容 -- **用户界面**:响应式设计,自定义主题,SEO 友好 \ No newline at end of file diff --git a/apps/answer/data.yml b/apps/answer/data.yml deleted file mode 100644 index 6c4df6e1..00000000 --- a/apps/answer/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Answer -tags: - - 建站 -title: 一款适合任何团队的问答平台软件 -type: 建站 -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 - recommend: 0 - website: https://answer.dev/ - github: https://github.com/answerdev/answer - document: https://answer.dev/zh-CN/docs diff --git a/apps/answer/logo.png b/apps/answer/logo.png deleted file mode 100644 index 444ad16b..00000000 Binary files a/apps/answer/logo.png and /dev/null differ diff --git a/apps/audiobookshelf/2.7.2/data.yml b/apps/audiobookshelf/2.7.2/data.yml deleted file mode 100644 index 1e487642..00000000 --- a/apps/audiobookshelf/2.7.2/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 40096 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/apps/audiobookshelf/2.7.2/docker-compose.yml b/apps/audiobookshelf/2.7.2/docker-compose.yml deleted file mode 100644 index 8fd8bf28..00000000 --- a/apps/audiobookshelf/2.7.2/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -version: '3' -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.7.2 - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true diff --git a/apps/audiobookshelf/README.md b/apps/audiobookshelf/README.md deleted file mode 100644 index e3149d20..00000000 --- a/apps/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/apps/audiobookshelf/data.yml b/apps/audiobookshelf/data.yml deleted file mode 100644 index 8a8787ed..00000000 --- a/apps/audiobookshelf/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Audiobookshelf -tags: - - 多媒体 -title: 一个自托管有声读物和播客服务器 -type: 多媒体 -description: 一个自托管有声读物和播客服务器 -additionalProperties: - key: audiobookshelf - name: Audiobookshelf - tags: - - Media - shortDescZh: 一个自托管有声读物和播客服务器 - shortDescEn: A Self-hosted audiobook and podcast server - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://www.audiobookshelf.org/ - github: https://github.com/advplyr/audiobookshelf - document: https://www.audiobookshelf.org/docs diff --git a/apps/audiobookshelf/logo.png b/apps/audiobookshelf/logo.png deleted file mode 100644 index d8b52c2c..00000000 Binary files a/apps/audiobookshelf/logo.png and /dev/null differ diff --git a/apps/bitwarden/1.30.1-alpine/data.yml b/apps/bitwarden/1.30.1-alpine/data.yml deleted file mode 100644 index 8734f9ce..00000000 --- a/apps/bitwarden/1.30.1-alpine/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 40031 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/apps/bitwarden/1.30.1-alpine/docker-compose.yml b/apps/bitwarden/1.30.1-alpine/docker-compose.yml deleted file mode 100644 index 59be455d..00000000 --- a/apps/bitwarden/1.30.1-alpine/docker-compose.yml +++ /dev/null @@ -1,17 +0,0 @@ -version: '3' -services: - bitwarden: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:80" - volumes: - - ./data:/data - image: vaultwarden/server:1.30.1-alpine - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/apps/bitwarden/README.md b/apps/bitwarden/README.md deleted file mode 100644 index 6c240cb7..00000000 --- a/apps/bitwarden/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# Bitwarden - -Bitwarden 是一款开源的密码管理器,提供强大的安全性和便捷的密码管理功能。 - -## 主要功能: - -- **密码保存与自动填充**:Bitwarden 可以安全地存储您的用户名和密码,以便您无需记忆它们。它还提供自动填充功能,可在登录网站时自动填充凭据。 -- **安全密码生成器**:Bitwarden 具备内置的密码生成器,可以生成复杂、随机的密码,以增加您的在线帐户的安全性。 -- **加密存储**:所有密码和敏感信息都以最高级别的加密进行存储,确保只有您能够访问和解锁您的数据。 -- **跨平台支持**:Bitwarden 提供桌面应用、移动应用和网页扩展,支持各种操作系统和浏览器,使您可以在多个设备上轻松访问您的密码。 -- **自动同步**:您的密码库会自动同步到 Bitwarden 云,这意味着无论您在哪里访问密码库,都可以获得最新的更新。 -- **团队和家庭共享**:Bitwarden 允许您创建共享密码库,以便与家庭成员或团队成员共享敏感信息,同时保持安全和隐私。 -- **安全审计**:Bitwarden 可以检查您的密码库,提供有关密码强度和重复使用的建议,以帮助您提高帐户的安全性。 -- **二次验证 (2FA) 支持**:Bitwarden 支持多种两步验证方法,增加了帐户的安全性。 -- **开源和自托管选项**:Bitwarden 是一个开源项目,您可以选择将其自托管在自己的服务器上,以增加对数据的控制和安全性。 \ No newline at end of file diff --git a/apps/bitwarden/data.yml b/apps/bitwarden/data.yml deleted file mode 100644 index 45b6d94d..00000000 --- a/apps/bitwarden/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: Bitwarden -tags: - - 实用工具 -title: 一个开源的密码管理服务 -type: 实用工具 -description: 一个开源的密码管理服务 -additionalProperties: - key: bitwarden - name: Bitwarden - tags: - - Tool - shortDescZh: 一个开源的密码管理服务 - shortDescEn: An open source password management service - type: tool - crossVersionUpdate: true - limit: 0 - website: https://bitwarden.com/ - github: https://github.com/dani-garcia/vaultwarden - document: https://github.com/dani-garcia/vaultwarden/wiki \ No newline at end of file diff --git a/apps/bitwarden/logo.png b/apps/bitwarden/logo.png deleted file mode 100644 index aafa30e8..00000000 Binary files a/apps/bitwarden/logo.png and /dev/null differ diff --git a/apps/calibre-web/0.6.21-ls241/data.yml b/apps/calibre-web/0.6.21-ls241/data.yml deleted file mode 100644 index 9099d0c1..00000000 --- a/apps/calibre-web/0.6.21-ls241/data.yml +++ /dev/null @@ -1,17 +0,0 @@ -additionalProperties: - formFields: - - default: 40109 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: HTTP Port - labelZh: HTTP端口 - 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/apps/calibre-web/0.6.21-ls241/docker-compose.yml b/apps/calibre-web/0.6.21-ls241/docker-compose.yml deleted file mode 100644 index fbcf6898..00000000 --- a/apps/calibre-web/0.6.21-ls241/docker-compose.yml +++ /dev/null @@ -1,25 +0,0 @@ -version: '3' -services: - calibre-web: - 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 - image: linuxserver/calibre-web:0.6.21-ls241 - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/apps/calibre-web/README.md b/apps/calibre-web/README.md deleted file mode 100644 index 5926efe5..00000000 --- a/apps/calibre-web/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# 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/apps/calibre-web/data.yml b/apps/calibre-web/data.yml deleted file mode 100644 index ed020447..00000000 --- a/apps/calibre-web/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Calibre-Web -tags: - - 多媒体 -title: 用于浏览、阅读和下载存储在 Calibre 数据库中的电子书的 Web 应用程序 -type: 多媒体 -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: tool - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://calibre-ebook.com - github: https://github.com/janeczku/calibre-web - document: https://calibre-ebook.com/help \ No newline at end of file diff --git a/apps/calibre-web/logo.png b/apps/calibre-web/logo.png deleted file mode 100644 index d9e98cc1..00000000 Binary files a/apps/calibre-web/logo.png and /dev/null differ diff --git a/apps/changedetectionio/0.45/data.yml b/apps/changedetectionio/0.45/data.yml deleted file mode 100644 index 68a3cbf3..00000000 --- a/apps/changedetectionio/0.45/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 40097 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/apps/changedetectionio/0.45/docker-compose.yml b/apps/changedetectionio/0.45/docker-compose.yml deleted file mode 100644 index 4060dae4..00000000 --- a/apps/changedetectionio/0.45/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -version: '3' -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.45 - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true diff --git a/apps/changedetectionio/README.md b/apps/changedetectionio/README.md deleted file mode 100644 index b0195891..00000000 --- a/apps/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/apps/changedetectionio/data.yml b/apps/changedetectionio/data.yml deleted file mode 100644 index c07247c8..00000000 --- a/apps/changedetectionio/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Changedetection.io -tags: - - 实用工具 -title: 网站更改检测、补货监控和通知。 -type: 实用工具 -description: 网站更改检测、补货监控和通知。 -additionalProperties: - key: changedetectionio - name: Changedetection.io - tags: - - Tool - shortDescZh: 网站更改检测、补货监控和通知。 - shortDescEn: Web Site Change Detection, Restock monitoring and notifications - type: tool - 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 diff --git a/apps/changedetectionio/logo.png b/apps/changedetectionio/logo.png deleted file mode 100644 index 80290161..00000000 Binary files a/apps/changedetectionio/logo.png and /dev/null differ diff --git a/apps/chatgpt-next-web/2.10.1/data.yml b/apps/chatgpt-next-web/2.10.1/data.yml deleted file mode 100644 index c1c32268..00000000 --- a/apps/chatgpt-next-web/2.10.1/data.yml +++ /dev/null @@ -1,40 +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 \ No newline at end of file diff --git a/apps/chatgpt-next-web/2.10.1/docker-compose.yml b/apps/chatgpt-next-web/2.10.1/docker-compose.yml deleted file mode 100644 index 4817e0cd..00000000 --- a/apps/chatgpt-next-web/2.10.1/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -version: '3' -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}" - image: yidadaa/chatgpt-next-web:v2.10.1 - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true diff --git a/apps/chatgpt-next-web/README.md b/apps/chatgpt-next-web/README.md deleted file mode 100644 index 3feaa4e5..00000000 --- a/apps/chatgpt-next-web/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# ChatGPT-Next-Web - -一键免费部署你的跨平台私人 ChatGPT 应用。 - -## 特征: - -- 只需在 1 分钟内即可在 Vercel 上一键免费部署 -- Linux/Windows/MacOS 上的紧凑型客户端 (~5MB),立即下载 -- 与自部署llms完全兼容,推荐与RWKV-Runner或LocalAI配合使用 -- 隐私第一,所有数据都存储在浏览器本地 -- Markdown 支持:LaTex、mermaid、代码高亮等。 -- 响应式设计、深色模式和 PWA -- 首屏加载速度快(~100kb),支持流式响应 -- v2 中的新增功能:使用提示模板(掩码)创建、共享和调试您的聊天工具 -- 由Awesome-chatgpt-prompts-zh和Awesome-chatgpt-prompts提供支持的很棒的提示 -- 自动压缩聊天历史记录以支持长时间对话,同时保存您的令牌 -- 国际化:英语、简体中文、繁体中文、日本语、法语、西班牙语、意大利语、土耳其语、德语、Tiếng Việt、Русский、Čeština、한국어、印度尼西亚 \ No newline at end of file diff --git a/apps/chatgpt-next-web/data.yml b/apps/chatgpt-next-web/data.yml deleted file mode 100644 index 6a3502a5..00000000 --- a/apps/chatgpt-next-web/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: ChatGPT-Next-Web -tags: - - 实用工具 -title: 一键免费部署你的跨平台私人 ChatGPT 应用 -type: 实用工具 -description: 一键免费部署你的跨平台私人 ChatGPT 应用 -additionalProperties: - key: chatgpt-next-web - name: ChatGPT-Next-Web - tags: - - Tool - shortDescZh: 一键免费部署你的跨平台私人 ChatGPT 应用 - shortDescEn: One-Click to get well-designed cross-platform ChatGPT web UI - type: tool - 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 diff --git a/apps/chatgpt-next-web/logo.png b/apps/chatgpt-next-web/logo.png deleted file mode 100644 index 800649de..00000000 Binary files a/apps/chatgpt-next-web/logo.png and /dev/null differ diff --git a/apps/chatgpt-web/README.md b/apps/chatgpt-web/README.md deleted file mode 100644 index d5aa6821..00000000 --- a/apps/chatgpt-web/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# ChatGPT Web - -包含完整 sass 体验的 chatgpt-web 应用。 - -## 主要功能: - -- **功能丰富**:ChatGPT-web不仅提供了基本的聊天功能,还具备很多实用的功能,例如语音识别、自动回复、历史记录、个人中心等。这些功能让你的聊天体验更加丰富,也使你能够轻松地管理多个会话。 -- **高度定制**:ChatGPT-web允许你定制聊天机器人的外观、行为和回答方式。你可以通过简单的配置文件来设置机器人的名称、头像、语气、回复方式等,甚至可以自定义机器人的回答内容。这种高度的定制化让你能够创造出独一无二的聊天体验。 -- **快速搭建**:ChatGPT-web提供了一键搭建功能,只需几分钟就能建立起一个完整的聊天系统。你只需安装好Python环境,然后通过简单的命令即可启动服务器。此外,ChatGPT-web还提供了详细的API文档和代码示例,方便你进行二次开发。 \ No newline at end of file diff --git a/apps/chatgpt-web/data.yml b/apps/chatgpt-web/data.yml deleted file mode 100644 index b7d5fb10..00000000 --- a/apps/chatgpt-web/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: ChatGPT Web -tags: - - 实用工具 -title: ChatGPT Web -type: 实用工具 -description: ChatGPT Web -additionalProperties: - key: chatgpt-web - name: ChatGPT Web - tags: - - Tool - shortDescZh: ChatGPT Web - shortDescEn: ChatGPT Web - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://github.com/Chanzhaoyu/chatgpt-web - github: https://github.com/Chanzhaoyu/chatgpt-web - document: https://github.com/Chanzhaoyu/chatgpt-web diff --git a/apps/chatgpt-web/latest/data.yml b/apps/chatgpt-web/latest/data.yml deleted file mode 100644 index cf144aca..00000000 --- a/apps/chatgpt-web/latest/data.yml +++ /dev/null @@ -1,103 +0,0 @@ -additionalProperties: - formFields: - - default: 40021 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: WebUI Port - labelZh: 网页端口 - required: true - rule: paramPort - type: number - - default: '' - edit: true - envKey: ACCESS_TOKEN - labelEn: OPENAI ACCESS TOKEN (fill in at least one with OPENAI API KEY)(https://chat.openai.com/api/auth/session) - labelZh: OPENAI ACCESS TOKEN (与OPENAI API KEY至少填一个)(https://chat.openai.com/api/auth/session) - required: false - type: text - - default: https://bypass.duti.tech/api/conversation - edit: true - envKey: REVERSE_PROXY - labelEn: API reverse proxy (optional)(enabled by default when OPENAI ACCESS TOKEN, need to pay attention to availability) - labelZh: API 反向代理 (可选)(OPENAI ACCESS TOKEN 时默认启用,需要注意可用性) - required: false - type: text - - default: '' - edit: true - envKey: API_KEY - labelEn: OPENAI API KEY (fill in at least one with OPENAI ACCESS TOKEN) - labelZh: OPENAI API KEY (与 OPENAI ACCESS TOKEN 至少填一个) - required: false - type: text - - default: gpt-3.5-turbo - edit: true - envKey: API_MODEL - labelEn: API model (optional)(available when setting OPENAI API KEY)(https://platform.openai.com/docs/models) - labelZh: API 模型 (可选)(设置 OPENAI API KEY 时可用)(https://platform.openai.com/docs/models) - required: false - type: text - - default: https://api.openai.com - edit: true - envKey: API_BASE_URL - labelEn: API interface address (optional)(available when setting OPENAI API KEY) - labelZh: API接口地址 (可选)(设置 OPENAI API KEY 时可用) - required: false - type: text - - default: chatgptweb - edit: true - envKey: SECRET_KEY - labelEn: Access rights key (optional)((recommended) - labelZh: 访问权限密钥 (可选)(强烈建议填写) - random: true - required: false - rule: paramComplexity - type: password - - default: '0' - edit: true - envKey: REQUEST_LIMIT - labelEn: Maximum number of requests per hour (optional)(default unlimited) - labelZh: 每小时最大请求次数 (可选)(默认无限) - required: false - type: text - - default: '60000' - edit: true - envKey: TIMEOUT - labelEn: Timeout(in milliseconds) (optional) - labelZh: 超时时间(单位毫秒) (可选) - required: false - type: text - - default: '' - edit: true - envKey: PROXY_HOST - labelEn: Socks proxy address (optional)(effective when combined with Socks proxy port) - labelZh: Socks 代理地址 (可选)(和 Socks 代理端口一起时生效) - required: false - type: text - - default: '' - edit: true - envKey: PROXY_PORT - labelEn: Socks proxy port (optional)(effective when combined with Socks proxy address) - labelZh: Socks 代理端口 (可选)(和 Socks 代理地址一起时生效) - required: false - type: text - - default: '' - edit: true - envKey: PROXY_USERNAME - labelEn: Socks proxy user name (optional)(effective when combined with Socks proxy address) - labelZh: Socks 代理用户名 (可选)(和 Socks 代理地址一起时生效) - required: false - type: text - - default: '' - edit: true - envKey: PROXY_PASSWORD - labelEn: Socks proxy password (optional)(effective when combined with Socks proxy address) - labelZh: Socks 代理密码 (可选)(和 Socks 代理地址一起时生效) - required: false - type: text - - default: '' - edit: true - envKey: HTTPS_PROXY - labelEn: HTTPS proxy (optional)(supports http、https、socks5) - labelZh: HTTPS代理 (可选)(支持 http、https、socks5) - required: false - type: text diff --git a/apps/chatgpt-web/latest/docker-compose.yml b/apps/chatgpt-web/latest/docker-compose.yml deleted file mode 100644 index ec251a23..00000000 --- a/apps/chatgpt-web/latest/docker-compose.yml +++ /dev/null @@ -1,29 +0,0 @@ -version: "3" -services: - chatgpt-web: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:3002" - environment: - OPENAI_API_KEY: "${API_KEY}" - OPENAI_ACCESS_TOKEN: "${ACCESS_TOKEN}" - OPENAI_API_BASE_URL: "${API_BASE_URL}" - OPENAI_API_MODEL: "${API_MODEL}" - API_REVERSE_PROXY: "${REVERSE_PROXY}" - AUTH_SECRET_KEY: "${SECRET_KEY}" - MAX_REQUEST_PER_HOUR: "${REQUEST_LIMIT}" - TIMEOUT_MS: "${TIMEOUT}" - SOCKS_PROXY_HOST: "${PROXY_HOST}" - SOCKS_PROXY_PORT: "${PROXY_PORT}" - SOCKS_PROXY_USERNAME: "${PROXY_USERNAME}" - SOCKS_PROXY_PASSWORD: "${PROXY_PASSWORD}" - HTTPS_PROXY: "${HTTPS_PROXY}" - image: chenzhaoyu94/chatgpt-web:latest - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/apps/chatgpt-web/logo.png b/apps/chatgpt-web/logo.png deleted file mode 100644 index 1d7b6c36..00000000 Binary files a/apps/chatgpt-web/logo.png and /dev/null differ diff --git a/apps/clickhouse/23.12.2-alpine/data.yml b/apps/clickhouse/23.12.2-alpine/data.yml deleted file mode 100644 index 70dfce58..00000000 --- a/apps/clickhouse/23.12.2-alpine/data.yml +++ /dev/null @@ -1,17 +0,0 @@ -additionalProperties: - formFields: - - default: 19000 - envKey: PANEL_APP_PORT_TCP - labelEn: Port - labelZh: TCP 端口 - required: true - rule: paramPort - type: number - - default: 18123 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: API 端口 - required: true - rule: paramPort - type: number diff --git a/apps/clickhouse/23.12.2-alpine/docker-compose.yml b/apps/clickhouse/23.12.2-alpine/docker-compose.yml deleted file mode 100644 index 43719219..00000000 --- a/apps/clickhouse/23.12.2-alpine/docker-compose.yml +++ /dev/null @@ -1,23 +0,0 @@ -version: '3' -services: - clickhouse: - 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/ - image: clickhouse/clickhouse-server:23.12.2-alpine - ulimits: - nofile: - soft: 262144 - hard: 262144 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/apps/clickhouse/README.md b/apps/clickhouse/README.md deleted file mode 100644 index f17e0332..00000000 --- a/apps/clickhouse/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# ClickHouse - -ClickHouse 一个用于联机分析(OLAP)的列式数据库管理系统(DBMS) - -## 主要功能: - - -- 真正的列式数据库管理系统 -- 数据压缩 -- 数据的磁盘存储 -- 多核心并行处理 -- 多服务器分布式处理 -- 支持SQL -- 向量引擎 -- 实时的数据更新 -- 索引 -- 适合在线查询 -- 支持近似计算 -- 自适应连接算法 -- 支持数据复制和数据完整性 -- 角色的访问控制 diff --git a/apps/clickhouse/data.yml b/apps/clickhouse/data.yml deleted file mode 100644 index 43f193fc..00000000 --- a/apps/clickhouse/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: ClickHouse -tags: - - 数据库 -title: ClickHouse 一个用于联机分析(OLAP)的列式数据库管理系统(DBMS) -type: 数据库 -description: ClickHouse 是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS) -additionalProperties: - key: clickhouse - name: ClickHouse - tags: - - Database - shortDescZh: ClickHouse 一个用于联机分析(OLAP)的列式数据库管理系统(DBMS) - shortDescEn: ClickHouse® is a high-performance, column-oriented SQL database management system (DBMS) for online analytical processing (OLAP). - type: runtime - crossVersionUpdate: false - limit: 0 - website: https://clickhouse.com/ - github: https://github.com/ClickHouse/ClickHouse - document: https://clickhouse.com/docs/zh \ No newline at end of file diff --git a/apps/clickhouse/logo.png b/apps/clickhouse/logo.png deleted file mode 100644 index db5c3158..00000000 Binary files a/apps/clickhouse/logo.png and /dev/null differ diff --git a/apps/cloudreve/3.8.3/data.yml b/apps/cloudreve/3.8.3/data.yml deleted file mode 100644 index 22256939..00000000 --- a/apps/cloudreve/3.8.3/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 40033 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/apps/cloudreve/3.8.3/data/cloudreve.db b/apps/cloudreve/3.8.3/data/cloudreve.db deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/cloudreve/3.8.3/data/conf.ini b/apps/cloudreve/3.8.3/data/conf.ini deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/cloudreve/3.8.3/docker-compose.yml b/apps/cloudreve/3.8.3/docker-compose.yml deleted file mode 100644 index fe7ebdc8..00000000 --- a/apps/cloudreve/3.8.3/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -version: '3' -services: - cloudreve: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:5212" - volumes: - - "./data/uploads:/cloudreve/uploads" - - "./data/data:/data" - - "./data/conf.ini:/cloudreve/conf.ini" - - "./data/cloudreve.db:/cloudreve/cloudreve.db" - - "./data/avatar:/cloudreve/avatar" - image: cloudreve/cloudreve:3.8.3 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/apps/cloudreve/README.md b/apps/cloudreve/README.md deleted file mode 100644 index 4a2bb1d1..00000000 --- a/apps/cloudreve/README.md +++ /dev/null @@ -1,22 +0,0 @@ -# 获取用户信息 - -账户与密码可以查看容器日志获得 - -# Cloudreve - -Cloudreve 是一个开源的云存储网盘系统,它提供了丰富的功能,使用户可以在自己的服务器上建立个人或团队的云存储和文件共享平台。 - -## 主要功能: - -* 支持本机、从机、七牛、阿里云 OSS、腾讯云 COS、又拍云、OneDrive (包括世纪互联版) 、S3兼容协议 作为存储端 -* 上传/下载 支持客户端直传,支持下载限速 -* 可对接 Aria2 离线下载,可使用多个从机节点分担下载任务 -* 在线 压缩/解压缩、多文件打包下载 -* 覆盖全部存储策略的 WebDAV 协议支持 -* 拖拽上传、目录上传、流式上传处理 -* 文件拖拽管理 -* 多用户、用户组、多存储策略 -* 创建文件、目录的分享链接,可设定自动过期 -* 视频、图像、音频、 ePub 在线预览,文本、Office 文档在线编辑 -* 自定义配色、黑暗模式、PWA 应用、全站单页应用、国际化支持 -* All-In-One 打包,开箱即用 \ No newline at end of file diff --git a/apps/cloudreve/data.yml b/apps/cloudreve/data.yml deleted file mode 100644 index 4221fa8e..00000000 --- a/apps/cloudreve/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Cloudreve -tags: - - 云存储 -title: 支持多家云存储的云盘系统 -type: 云存储 -description: 支持多家云存储的云盘系统 -additionalProperties: - key: cloudreve - name: Cloudreve - tags: - - Storage - shortDescZh: 支持多家云存储的云盘系统 - shortDescEn: A cloud disk system that supports multiple cloud storage - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://cloudreve.org/ - github: https://github.com/cloudreve/Cloudreve - document: https://docs.cloudreve.org/ diff --git a/apps/cloudreve/logo.png b/apps/cloudreve/logo.png deleted file mode 100644 index 1358b5d4..00000000 Binary files a/apps/cloudreve/logo.png and /dev/null differ diff --git a/apps/code-server/4.20.1/data.yml b/apps/code-server/4.20.1/data.yml deleted file mode 100644 index fe6aaf25..00000000 --- a/apps/code-server/4.20.1/data.yml +++ /dev/null @@ -1,26 +0,0 @@ -additionalProperties: - formFields: - - default: 40031 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - - default: code - envKey: WEB_PASSWORD - labelEn: Web access password - labelZh: 网页访问密码 - random: true - required: true - rule: paramComplexity - type: password - - default: code - envKey: SUDO_PASSWORD - labelEn: sudo password - labelZh: sudo密码 - random: true - required: true - rule: paramComplexity - type: password diff --git a/apps/code-server/4.20.1/docker-compose.yml b/apps/code-server/4.20.1/docker-compose.yml deleted file mode 100644 index 7feca940..00000000 --- a/apps/code-server/4.20.1/docker-compose.yml +++ /dev/null @@ -1,24 +0,0 @@ -version: '3' -services: - code: - 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 - image: linuxserver/code-server:4.20.1 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/apps/code-server/README.md b/apps/code-server/README.md deleted file mode 100644 index 81be1827..00000000 --- a/apps/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应用程序。 - -## 主要功能: - -- **远程开发**:Code Server 允许您从任何地方使用Web浏览器访问您的开发环境。这意味着您可以在不同设备和操作系统上一致地编写、编辑和运行代码。 -- **轻量级**:Code Server 是一个轻量级的应用程序,资源占用较少,因此在资源有限的服务器上运行也很高效。这使得它成为为团队提供统一的开发环境或在云中进行开发的理想工具。 -- **丰富的扩展生态系统**:您可以安装并使用VS Code的广泛扩展库,从而扩展编辑器的功能。这包括语言支持、主题、代码片段和工作流程自动化等方面。 -- **多语言支持**:Code Server 提供了广泛的编程语言支持,包括JavaScript、Python、Java、C++等。您可以在一个统一的开发环境中处理多种编程任务。 -- **集成终端**:它内置了一个终端,让您可以在同一界面中执行命令、安装依赖和运行应用程序。 -- **版本控制**:集成了版本控制系统(如Git),使您可以轻松地管理和跟踪代码更改。 -- **团队协作**:Code Server 允许多个开发人员同时协作,通过共享工作区和代码库来增强团队协作能力。 -- **自定义设置**:您可以根据自己的需求自定义编辑器的设置,包括主题、快捷键和工作区配置。 \ No newline at end of file diff --git a/apps/code-server/data.yml b/apps/code-server/data.yml deleted file mode 100644 index edd69010..00000000 --- a/apps/code-server/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Coder -tags: - - 开发工具 -title: VS Code 远程开发环境 -type: 开发工具 -description: VS Code 远程开发环境 -additionalProperties: - key: code-server - name: Coder - tags: - - DevTool - shortDescZh: VS Code 远程开发环境 - shortDescEn: VS Code remote development environment - type: tool - 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 \ No newline at end of file diff --git a/apps/code-server/logo.png b/apps/code-server/logo.png deleted file mode 100644 index 241659df..00000000 Binary files a/apps/code-server/logo.png and /dev/null differ diff --git a/apps/consul/1.17.2/data.yml b/apps/consul/1.17.2/data.yml deleted file mode 100644 index 1207f14c..00000000 --- a/apps/consul/1.17.2/data.yml +++ /dev/null @@ -1,18 +0,0 @@ -additionalProperties: - formFields: - - default: 8500 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: HTTP Port - labelZh: HTTP端口 - required: true - rule: paramPort - type: number - - default: 8600 - edit: true - envKey: PANEL_APP_PORT_DNS - labelEn: DNS Port - labelZh: DNS端口 - required: true - rule: paramPort - type: number \ No newline at end of file diff --git a/apps/consul/1.17.2/data/config/.gitkeep b/apps/consul/1.17.2/data/config/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/consul/1.17.2/data/data/.gitkeep b/apps/consul/1.17.2/data/data/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/consul/1.17.2/data/logs/.gitkeep b/apps/consul/1.17.2/data/logs/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/consul/1.17.2/docker-compose.yml b/apps/consul/1.17.2/docker-compose.yml deleted file mode 100644 index 4346a52e..00000000 --- a/apps/consul/1.17.2/docker-compose.yml +++ /dev/null @@ -1,22 +0,0 @@ -version: '3' -services: - consul: - image: hashicorp/consul:1.17.2 - 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/apps/consul/1.17.2/scripts/init.sh b/apps/consul/1.17.2/scripts/init.sh deleted file mode 100644 index 4e811c86..00000000 --- a/apps/consul/1.17.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/apps/consul/README.md b/apps/consul/README.md deleted file mode 100644 index 60e92b45..00000000 --- a/apps/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/apps/consul/data.yml b/apps/consul/data.yml deleted file mode 100644 index 4f9f5bc8..00000000 --- a/apps/consul/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Consul -tags: - - 中间件 -title: 分布式、高可用且具有数据中心感知能力的解决方案 -type: 中间件 -description: 分布式、高可用且具有数据中心感知能力的解决方案 -additionalProperties: - key: consul - name: Consul - tags: - - Middleware - shortDescZh: 分布式、高可用且具有数据中心感知能力的解决方案 - shortDescEn: Distributed, highly available, and data center aware solution - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://www.consul.io - github: https://github.com/hashicorp/consul - document: https://learn.hashicorp.com/consul \ No newline at end of file diff --git a/apps/consul/logo.png b/apps/consul/logo.png deleted file mode 100644 index 589c9152..00000000 Binary files a/apps/consul/logo.png and /dev/null differ diff --git a/apps/dataease/1.18.14/conf/dataease.properties b/apps/dataease/1.18.14/conf/dataease.properties deleted file mode 100644 index 442f8748..00000000 --- a/apps/dataease/1.18.14/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/apps/dataease/1.18.14/data.yml b/apps/dataease/1.18.14/data.yml deleted file mode 100755 index bb087a76..00000000 --- a/apps/dataease/1.18.14/data.yml +++ /dev/null @@ -1,55 +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 - rule: paramComplexity - 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/apps/dataease/1.18.14/docker-compose.yml b/apps/dataease/1.18.14/docker-compose.yml deleted file mode 100644 index 2403b230..00000000 --- a/apps/dataease/1.18.14/docker-compose.yml +++ /dev/null @@ -1,30 +0,0 @@ -version: '3' -services: - dataease: - image: registry.cn-qingdao.aliyuncs.com/dataease/dataease:v1.18.14 - 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 - 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/apps/dataease/2.2.0/conf/application.yml b/apps/dataease/2.2.0/conf/application.yml deleted file mode 100644 index 1303eaf4..00000000 --- a/apps/dataease/2.2.0/conf/application.yml +++ /dev/null @@ -1,12 +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} diff --git a/apps/dataease/2.2.0/data.yml b/apps/dataease/2.2.0/data.yml deleted file mode 100755 index 27804881..00000000 --- a/apps/dataease/2.2.0/data.yml +++ /dev/null @@ -1,55 +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 - rule: paramComplexity - 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/apps/dataease/2.2.0/docker-compose.yml b/apps/dataease/2.2.0/docker-compose.yml deleted file mode 100644 index 8888a264..00000000 --- a/apps/dataease/2.2.0/docker-compose.yml +++ /dev/null @@ -1,28 +0,0 @@ -version: '2.1' -services: - dataease: - image: registry.cn-qingdao.aliyuncs.com/dataease/dataease:v2.2.0 - 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 - 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/apps/dataease/README.md b/apps/dataease/README.md deleted file mode 100644 index 62f67ca0..00000000 --- a/apps/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/apps/dataease/data.yml b/apps/dataease/data.yml deleted file mode 100755 index 86d8f216..00000000 --- a/apps/dataease/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: DataEase -tags: - - BI -title: 人人可用的开源数据可视化分析工具 -type: BI -description: 人人可用的开源数据可视化分析工具 -additionalProperties: - key: dataease - name: DataEase - tags: - - BI - shortDescZh: 人人可用的开源数据可视化分析工具 - shortDescEn: Open source data visualization and analysis tools available to everyone - type: tool - crossVersionUpdate: false - limit: 0 - recommend: 8 - website: https://dataease.io/ - github: https://github.com/dataease/dataease - document: https://dataease.io/docs/ diff --git a/apps/dataease/logo.png b/apps/dataease/logo.png deleted file mode 100644 index 4e684099..00000000 Binary files a/apps/dataease/logo.png and /dev/null differ diff --git a/apps/ddns-go/6.1.0/data.yml b/apps/ddns-go/6.1.0/data.yml deleted file mode 100644 index 3c8c913b..00000000 --- a/apps/ddns-go/6.1.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/apps/ddns-go/6.1.0/docker-compose.yml b/apps/ddns-go/6.1.0/docker-compose.yml deleted file mode 100644 index ff1dea82..00000000 --- a/apps/ddns-go/6.1.0/docker-compose.yml +++ /dev/null @@ -1,13 +0,0 @@ -version: '3' -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.1.0 - labels: - createdBy: "Apps" diff --git a/apps/ddns-go/README.md b/apps/ddns-go/README.md deleted file mode 100644 index 1b82104f..00000000 --- a/apps/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/apps/ddns-go/data.yml b/apps/ddns-go/data.yml deleted file mode 100644 index 20d5c930..00000000 --- a/apps/ddns-go/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: ddns-go -tags: - - 实用工具 -title: 简单好用的 DDNS -type: 实用工具 -description: 简单好用的 DDNS -additionalProperties: - key: ddns-go - name: ddns-go - tags: - - Tool - shortDescZh: 简单好用的 DDNS - shortDescEn: Simple and easy-to-use DDNS - type: tool - 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 diff --git a/apps/ddns-go/logo.png b/apps/ddns-go/logo.png deleted file mode 100644 index 1e1313c0..00000000 Binary files a/apps/ddns-go/logo.png and /dev/null differ diff --git a/apps/discuz/3.4/data.yml b/apps/discuz/3.4/data.yml deleted file mode 100644 index 29917c6f..00000000 --- a/apps/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/apps/discuz/3.4/docker-compose.yml b/apps/discuz/3.4/docker-compose.yml deleted file mode 100644 index a5c612ab..00000000 --- a/apps/discuz/3.4/docker-compose.yml +++ /dev/null @@ -1,22 +0,0 @@ -version: "3" -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/apps/discuz/3.4/scripts/uninstall.sh b/apps/discuz/3.4/scripts/uninstall.sh deleted file mode 100644 index 1a62d5e5..00000000 --- a/apps/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/apps/discuz/README.md b/apps/discuz/README.md deleted file mode 100644 index 801a175b..00000000 --- a/apps/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/apps/discuz/data.yml b/apps/discuz/data.yml deleted file mode 100644 index 8581a095..00000000 --- a/apps/discuz/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Discuz! -tags: - - 建站 -title: 开源社交建站系统 -type: 建站 -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 diff --git a/apps/discuz/logo.png b/apps/discuz/logo.png deleted file mode 100644 index 5cbc5127..00000000 Binary files a/apps/discuz/logo.png and /dev/null differ diff --git a/apps/docker-registry/2.8.3/data.yml b/apps/docker-registry/2.8.3/data.yml deleted file mode 100755 index 5aca03c5..00000000 --- a/apps/docker-registry/2.8.3/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 5000 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/apps/docker-registry/2.8.3/docker-compose.yml b/apps/docker-registry/2.8.3/docker-compose.yml deleted file mode 100644 index d17227a5..00000000 --- a/apps/docker-registry/2.8.3/docker-compose.yml +++ /dev/null @@ -1,17 +0,0 @@ -version: '3' -services: - docker-registry: - image: registry:2.8.3 - 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/apps/docker-registry/README.md b/apps/docker-registry/README.md deleted file mode 100644 index 746f6715..00000000 --- a/apps/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/apps/docker-registry/data.yml b/apps/docker-registry/data.yml deleted file mode 100755 index 8f3fd8be..00000000 --- a/apps/docker-registry/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Docker Registry -tags: - - DevOps -title: Docker 镜像存储库 -type: DevOps -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/ diff --git a/apps/docker-registry/logo.png b/apps/docker-registry/logo.png deleted file mode 100644 index 23027f8c..00000000 Binary files a/apps/docker-registry/logo.png and /dev/null differ diff --git a/apps/dockge/1.4.2/data.yml b/apps/dockge/1.4.2/data.yml deleted file mode 100644 index 800dc1b7..00000000 --- a/apps/dockge/1.4.2/data.yml +++ /dev/null @@ -1,17 +0,0 @@ -additionalProperties: - formFields: - - default: 5001 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - - default: /opt/stacks - edit: true - envKey: DOCKGE_STACKS_DIR - labelEn: Stacks Directory - labelZh: 栈目录 - required: true - type: text diff --git a/apps/dockge/1.4.2/docker-compose.yml b/apps/dockge/1.4.2/docker-compose.yml deleted file mode 100644 index d37ecdee..00000000 --- a/apps/dockge/1.4.2/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -version: '3' -services: - dockge: - image: louislam/dockge:1.4.2 - 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/apps/dockge/README.md b/apps/dockge/README.md deleted file mode 100644 index de8bab5e..00000000 --- a/apps/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/apps/dockge/data.yml b/apps/dockge/data.yml deleted file mode 100644 index 8f195fed..00000000 --- a/apps/dockge/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Dockge -tags: - - 实用工具 -title: 自托管的容器编排管理器 -type: 实用工具 -description: 自托管的容器编排管理器 -additionalProperties: - key: dockge - name: Dockge - tags: - - Tool - shortDescZh: 自托管 - Docker compose.yaml - 面向堆栈的管理器 - shortDescEn: Self-hosted - Docker compose.yaml - Stack-oriented Manager - type: tool - 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 \ No newline at end of file diff --git a/apps/dockge/logo.png b/apps/dockge/logo.png deleted file mode 100644 index 006c743d..00000000 Binary files a/apps/dockge/logo.png and /dev/null differ diff --git a/apps/domain-admin/1.6.1/data.yml b/apps/domain-admin/1.6.1/data.yml deleted file mode 100755 index 49b4387e..00000000 --- a/apps/domain-admin/1.6.1/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/apps/domain-admin/1.6.1/docker-compose.yml b/apps/domain-admin/1.6.1/docker-compose.yml deleted file mode 100755 index d3ab6550..00000000 --- a/apps/domain-admin/1.6.1/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -version: '3' -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.1 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/apps/domain-admin/README.md b/apps/domain-admin/README.md deleted file mode 100755 index f38f5dd9..00000000 --- a/apps/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/apps/domain-admin/data.yml b/apps/domain-admin/data.yml deleted file mode 100755 index 8bfe945d..00000000 --- a/apps/domain-admin/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Domain Admin -tags: - - 实用工具 -title: 域名和 SSL 证书监测平台 -type: 实用工具 -description: 域名和 SSL 证书监测平台 -additionalProperties: - key: domain-admin - name: Domain Admin - tags: - - Tool - shortDescZh: 域名和 SSL 证书监测平台 - shortDescEn: Domain name and SSL certificate monitoring platform - type: tool - 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/ diff --git a/apps/domain-admin/logo.png b/apps/domain-admin/logo.png deleted file mode 100755 index 9d16688a..00000000 Binary files a/apps/domain-admin/logo.png and /dev/null differ diff --git a/apps/drawio/23.0.2/22.1.22/data.yml b/apps/drawio/23.0.2/22.1.22/data.yml deleted file mode 100644 index 574c2eb4..00000000 --- a/apps/drawio/23.0.2/22.1.22/data.yml +++ /dev/null @@ -1,18 +0,0 @@ -additionalProperties: - formFields: - - default: 8080 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: HTTP Port - labelZh: HTTP 端口 - required: true - rule: paramPort - type: number - - default: 6443 - edit: true - envKey: PANEL_APP_PORT_HTTPS - labelEn: HTTPS Port - labelZh: HTTPS 端口 - required: true - rule: paramPort - type: number diff --git a/apps/drawio/23.0.2/22.1.22/docker-compose.yml b/apps/drawio/23.0.2/22.1.22/docker-compose.yml deleted file mode 100644 index ba9e1f9d..00000000 --- a/apps/drawio/23.0.2/22.1.22/docker-compose.yml +++ /dev/null @@ -1,16 +0,0 @@ -version: '3' -services: - drawio: - image: jgraph/drawio:23.0.2 - 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/apps/drawio/23.0.2/data.yml b/apps/drawio/23.0.2/data.yml deleted file mode 100644 index 574c2eb4..00000000 --- a/apps/drawio/23.0.2/data.yml +++ /dev/null @@ -1,18 +0,0 @@ -additionalProperties: - formFields: - - default: 8080 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: HTTP Port - labelZh: HTTP 端口 - required: true - rule: paramPort - type: number - - default: 6443 - edit: true - envKey: PANEL_APP_PORT_HTTPS - labelEn: HTTPS Port - labelZh: HTTPS 端口 - required: true - rule: paramPort - type: number diff --git a/apps/drawio/23.0.2/docker-compose.yml b/apps/drawio/23.0.2/docker-compose.yml deleted file mode 100644 index ba9e1f9d..00000000 --- a/apps/drawio/23.0.2/docker-compose.yml +++ /dev/null @@ -1,16 +0,0 @@ -version: '3' -services: - drawio: - image: jgraph/drawio:23.0.2 - 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/apps/drawio/README.md b/apps/drawio/README.md deleted file mode 100644 index 7ff823f7..00000000 --- a/apps/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/apps/drawio/data.yml b/apps/drawio/data.yml deleted file mode 100644 index 040af418..00000000 --- a/apps/drawio/data.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: Draw.io -tags: - - 实用工具 -title: 免费和开源的跨平台图形绘制软件 -type: 实用工具 -description: 免费和开源的跨平台图形绘制软件 -additionalProperties: - key: drawio - name: Draw.io - tags: - - Tool - shortDescZh: 免费和开源的跨平台图形绘制软件 - shortDescEn: Free and open source cross-platform graphics drawing software - type: tool - crossVersionUpdate: true - limit: 0 - website: https://www.drawio.com/ - github: https://github.com/jgraph/drawio diff --git a/apps/drawio/logo.png b/apps/drawio/logo.png deleted file mode 100644 index 0be49392..00000000 Binary files a/apps/drawio/logo.png and /dev/null differ diff --git a/apps/elasticsearch/7.17.17/data.yml b/apps/elasticsearch/7.17.17/data.yml deleted file mode 100644 index d961350a..00000000 --- a/apps/elasticsearch/7.17.17/data.yml +++ /dev/null @@ -1,38 +0,0 @@ -additionalProperties: - formFields: - - default: 9200 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: HTTP Port - labelZh: HTTP端口 - required: true - rule: paramPort - type: number - - default: "true" - edit: true - envKey: ELASTIC_SECURITY - labelEn: Password Verification - labelZh: 开启密码验证 - required: true - type: select - values: - - label: "True" - value: "true" - - label: "False" - value: "false" - - default: "Elastic" - edit: true - envKey: ELASTIC_PASSWORD - labelEn: Password - labelZh: 密码 - random: true - required: true - rule: paramComplexity - 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 - required: true - type: text \ No newline at end of file diff --git a/apps/elasticsearch/7.17.17/data/backup/.gitkeep b/apps/elasticsearch/7.17.17/data/backup/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/elasticsearch/7.17.17/data/conf/elasticsearch.yml b/apps/elasticsearch/7.17.17/data/conf/elasticsearch.yml deleted file mode 100644 index a60e2bdb..00000000 --- a/apps/elasticsearch/7.17.17/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/apps/elasticsearch/7.17.17/data/data/.gitkeep b/apps/elasticsearch/7.17.17/data/data/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/elasticsearch/7.17.17/docker-compose.yml b/apps/elasticsearch/7.17.17/docker-compose.yml deleted file mode 100644 index 4dd6cfa7..00000000 --- a/apps/elasticsearch/7.17.17/docker-compose.yml +++ /dev/null @@ -1,31 +0,0 @@ -version: '3' -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.17 - 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/apps/elasticsearch/7.17.17/scripts/init.sh b/apps/elasticsearch/7.17.17/scripts/init.sh deleted file mode 100644 index 4e811c86..00000000 --- a/apps/elasticsearch/7.17.17/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/apps/elasticsearch/8.12.0/data.yml b/apps/elasticsearch/8.12.0/data.yml deleted file mode 100644 index d961350a..00000000 --- a/apps/elasticsearch/8.12.0/data.yml +++ /dev/null @@ -1,38 +0,0 @@ -additionalProperties: - formFields: - - default: 9200 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: HTTP Port - labelZh: HTTP端口 - required: true - rule: paramPort - type: number - - default: "true" - edit: true - envKey: ELASTIC_SECURITY - labelEn: Password Verification - labelZh: 开启密码验证 - required: true - type: select - values: - - label: "True" - value: "true" - - label: "False" - value: "false" - - default: "Elastic" - edit: true - envKey: ELASTIC_PASSWORD - labelEn: Password - labelZh: 密码 - random: true - required: true - rule: paramComplexity - 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 - required: true - type: text \ No newline at end of file diff --git a/apps/elasticsearch/8.12.0/data/backup/.gitkeep b/apps/elasticsearch/8.12.0/data/backup/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/elasticsearch/8.12.0/data/conf/elasticsearch.yml b/apps/elasticsearch/8.12.0/data/conf/elasticsearch.yml deleted file mode 100644 index a60e2bdb..00000000 --- a/apps/elasticsearch/8.12.0/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/apps/elasticsearch/8.12.0/data/data/.gitkeep b/apps/elasticsearch/8.12.0/data/data/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/elasticsearch/8.12.0/docker-compose.yml b/apps/elasticsearch/8.12.0/docker-compose.yml deleted file mode 100644 index de91041a..00000000 --- a/apps/elasticsearch/8.12.0/docker-compose.yml +++ /dev/null @@ -1,31 +0,0 @@ -version: '3' -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.12.0 - 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/apps/elasticsearch/8.12.0/scripts/init.sh b/apps/elasticsearch/8.12.0/scripts/init.sh deleted file mode 100644 index 4e811c86..00000000 --- a/apps/elasticsearch/8.12.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/apps/elasticsearch/README.md b/apps/elasticsearch/README.md deleted file mode 100644 index ca0da3d5..00000000 --- a/apps/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/apps/elasticsearch/data.yml b/apps/elasticsearch/data.yml deleted file mode 100644 index fb07d97b..00000000 --- a/apps/elasticsearch/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Elasticsearch -tags: - - 数据库 -title: Elasticsearch -type: 数据库 -description: 免费开放、分布式、RESTful 搜索引擎 -additionalProperties: - key: elasticsearch - name: Elasticsearch - tags: - - Database - shortDescZh: 免费开放、分布式、RESTful 搜索引擎 - shortDescEn: Free and Open, Distributed, RESTful Search Engine - type: runtime - 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 \ No newline at end of file diff --git a/apps/elasticsearch/logo.png b/apps/elasticsearch/logo.png deleted file mode 100644 index 5b5ec38f..00000000 Binary files a/apps/elasticsearch/logo.png and /dev/null differ diff --git a/apps/emlog/README.md b/apps/emlog/README.md deleted file mode 100644 index a893449f..00000000 --- a/apps/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/apps/emlog/data.yml b/apps/emlog/data.yml deleted file mode 100755 index ab2f47f8..00000000 --- a/apps/emlog/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: emlog -tags: - - 建站 -title: 轻量级博客及CMS建站系统 -type: 建站 -description: 轻量级博客及CMS建站系统。 -additionalProperties: - key: emlog - name: emlog - tags: - - WebSite - shortDescZh: 轻量级博客及CMS建站系统 - shortDescEn: A lightweight blog and cms 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 diff --git a/apps/emlog/logo.png b/apps/emlog/logo.png deleted file mode 100644 index cf81b3a5..00000000 Binary files a/apps/emlog/logo.png and /dev/null differ diff --git a/apps/emlog/pro-latest-php7.4-apache/data.yml b/apps/emlog/pro-latest-php7.4-apache/data.yml deleted file mode 100755 index 09feab7f..00000000 --- a/apps/emlog/pro-latest-php7.4-apache/data.yml +++ /dev/null @@ -1,49 +0,0 @@ -additionalProperties: - formFields: - - default: "" - envKey: PANEL_DB_HOST - key: mysql - labelEn: Database Service - labelZh: 数据库服务 - required: true - type: service - - 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 - rule: paramComplexity - 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/apps/emlog/pro-latest-php7.4-apache/docker-compose.yml b/apps/emlog/pro-latest-php7.4-apache/docker-compose.yml deleted file mode 100644 index f02ca06b..00000000 --- a/apps/emlog/pro-latest-php7.4-apache/docker-compose.yml +++ /dev/null @@ -1,23 +0,0 @@ -version: '3' -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/apps/emqx/5.4.1/data.yml b/apps/emqx/5.4.1/data.yml deleted file mode 100755 index 91a5b235..00000000 --- a/apps/emqx/5.4.1/data.yml +++ /dev/null @@ -1,42 +0,0 @@ -additionalProperties: - formFields: - - default: 18083 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Dashboard Port - labelZh: Dashboard 控制台端口 - required: true - rule: paramPort - type: number - - default: 1883 - edit: true - envKey: EMQX_PORT_1883 - labelEn: MQTT Port - labelZh: MQTT 协议端口 - required: true - rule: paramPort - type: number - - default: 8083 - edit: true - envKey: EMQX_PORT_8083 - labelEn: WebSocket Port - labelZh: WebSocket 端口 - required: true - rule: paramPort - type: number - - default: 8084 - edit: true - envKey: EMQX_PORT_8084 - labelEn: WebSocket SSL Port - labelZh: WebSocket SSL 端口 - required: true - rule: paramPort - type: number - - default: 8883 - edit: true - envKey: EMQX_PORT_8883 - labelEn: MQTT SSL Port - labelZh: MQTT SSL 端口 - required: true - rule: paramPort - type: number diff --git a/apps/emqx/5.4.1/docker-compose.yml b/apps/emqx/5.4.1/docker-compose.yml deleted file mode 100644 index edcaea3e..00000000 --- a/apps/emqx/5.4.1/docker-compose.yml +++ /dev/null @@ -1,23 +0,0 @@ -version: '3' -services: - emqx: - image: emqx/emqx:5.4.1 - 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 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/apps/emqx/README.md b/apps/emqx/README.md deleted file mode 100644 index ccac6ff3..00000000 --- a/apps/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/apps/emqx/data.yml b/apps/emqx/data.yml deleted file mode 100755 index e50c2957..00000000 --- a/apps/emqx/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: EMQX -tags: - - 中间件 -title: 开源物联网 MQTT 消息服务器 -type: 中间件 -description: 开源物联网 MQTT 消息服务器 -additionalProperties: - key: emqx - name: EMQX - tags: - - Middleware - shortDescZh: 开源物联网 MQTT 消息服务器 - shortDescEn: Open-source IoT MQTT Message Server - type: tool - 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/ diff --git a/apps/emqx/logo.png b/apps/emqx/logo.png deleted file mode 100644 index c0831989..00000000 Binary files a/apps/emqx/logo.png and /dev/null differ diff --git a/apps/filebrowser/2.27.0/data.yml b/apps/filebrowser/2.27.0/data.yml deleted file mode 100644 index cd96ae14..00000000 --- a/apps/filebrowser/2.27.0/data.yml +++ /dev/null @@ -1,17 +0,0 @@ -additionalProperties: - formFields: - - default: 40071 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: HTTP Port - labelZh: HTTP端口 - required: true - rule: paramPort - type: number - - default: ./data/mnt - edit: true - envKey: MOUNT_PATH - labelEn: Mount folder path - labelZh: 挂载文件夹路径 - required: true - type: text diff --git a/apps/filebrowser/2.27.0/data/.filebrowser.json b/apps/filebrowser/2.27.0/data/.filebrowser.json deleted file mode 100644 index fbcf6a1a..00000000 --- a/apps/filebrowser/2.27.0/data/.filebrowser.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "port": 80, - "baseURL": "", - "address": "", - "log": "stdout", - "database": "/database/filebrowser.db", - "root": "/srv" - } \ No newline at end of file diff --git a/apps/filebrowser/2.27.0/data/database.db b/apps/filebrowser/2.27.0/data/database.db deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/filebrowser/2.27.0/docker-compose.yml b/apps/filebrowser/2.27.0/docker-compose.yml deleted file mode 100644 index 477007b3..00000000 --- a/apps/filebrowser/2.27.0/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -version: '3' -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.27.0 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/apps/filebrowser/README.md b/apps/filebrowser/README.md deleted file mode 100644 index bc14badb..00000000 --- a/apps/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/apps/filebrowser/data.yml b/apps/filebrowser/data.yml deleted file mode 100644 index 1afa683d..00000000 --- a/apps/filebrowser/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: File Browser -tags: - - 实用工具 -title: 网页文件浏览器 -type: 实用工具 -description: 网页文件浏览器 -additionalProperties: - key: filebrowser - name: File Browser - tags: - - Tool - shortDescZh: 网页文件浏览器 - shortDescEn: Web File Browser - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://filebrowser.org/ - github: https://github.com/filebrowser/filebrowser - document: https://filebrowser.org/ \ No newline at end of file diff --git a/apps/filebrowser/logo.png b/apps/filebrowser/logo.png deleted file mode 100644 index 1d76ec2f..00000000 Binary files a/apps/filebrowser/logo.png and /dev/null differ diff --git a/apps/filecodebox/README.md b/apps/filecodebox/README.md deleted file mode 100644 index 47d7aea2..00000000 --- a/apps/filecodebox/README.md +++ /dev/null @@ -1,25 +0,0 @@ -## 默认账户信息 - -``` -后端地址:`/#/admin` -后台密码:`FileCodeBox2023` -``` - -# FileCodeBox - -文件快递柜-匿名口令分享文本,文件,像拿快递一样取文件 - -## 主要特色 - -- [x] 轻量简洁:Fastapi+Sqlite3+Vue3 -- [x] 轻松上传:复制粘贴,拖拽选择 -- [x] 多种类型:文本,文件 -- [x] 防止爆破:错误次数限制 -- [x] 防止滥用:IP限制上传次数 -- [x] 口令分享:随机口令,存取文件,自定义次数以及有效期 -- [x] 国际化:支持中文和英文 -- [x] 匿名分享:无需注册,无需登录 -- [x] 管理面板:查看所有文件,删除文件 -- [x] 一键部署:docker一键部署 -- [x] 自由拓展:S3协议、本地文件流,可根据需求在storage文件中新增存储引擎 -- [x] 简单明了:适合新手练手项目 diff --git a/apps/filecodebox/beta/data.yml b/apps/filecodebox/beta/data.yml deleted file mode 100644 index 0582c9a1..00000000 --- a/apps/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/apps/filecodebox/beta/docker-compose.yml b/apps/filecodebox/beta/docker-compose.yml deleted file mode 100644 index f2a9b70d..00000000 --- a/apps/filecodebox/beta/docker-compose.yml +++ /dev/null @@ -1,17 +0,0 @@ -version: '3' -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/apps/filecodebox/data.yml b/apps/filecodebox/data.yml deleted file mode 100644 index 26066ee5..00000000 --- a/apps/filecodebox/data.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: FileCodeBox -tags: - - 实用工具 - - 云存储 -title: 文件快递柜-匿名口令分享文本,文件,像拿快递一样取文件 -type: 实用工具 -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: tool - crossVersionUpdate: true - limit: 1 - recommend: 0 - website: https://share.lanol.cn - github: https://github.com/vastsa/FileCodeBox - document: https://github.com/vastsa/FileCodeBox \ No newline at end of file diff --git a/apps/filecodebox/logo.png b/apps/filecodebox/logo.png deleted file mode 100644 index a62128d1..00000000 Binary files a/apps/filecodebox/logo.png and /dev/null differ diff --git a/apps/flarum/1.8.3/data.yml b/apps/flarum/1.8.3/data.yml deleted file mode 100755 index 9a7939dc..00000000 --- a/apps/flarum/1.8.3/data.yml +++ /dev/null @@ -1,63 +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: flarum - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库名 - random: true - required: true - rule: paramCommon - type: text - - default: flarum - envKey: PANEL_DB_USER - labelEn: User - labelZh: 数据库用户 - random: true - required: true - rule: paramCommon - type: text - - default: flarum - envKey: PANEL_DB_USER_PASSWORD - labelEn: Password - labelZh: 数据库用户密码 - random: true - required: true - rule: paramComplexity - type: password - - default: flarum_ - envKey: PANEL_DB_PREFIX - labelEn: Database prefix - labelZh: 数据库前缀 - required: true - type: text - - default: 40020 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - - default: http://localhost:40020 - edit: true - envKey: FLARUM_EXTERNAL_URL - labelEn: External URL - labelZh: 外部访问地址 - required: true - type: text diff --git a/apps/flarum/1.8.3/data/.gitkeep b/apps/flarum/1.8.3/data/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/flarum/1.8.3/docker-compose.yml b/apps/flarum/1.8.3/docker-compose.yml deleted file mode 100644 index 55a6aa7d..00000000 --- a/apps/flarum/1.8.3/docker-compose.yml +++ /dev/null @@ -1,36 +0,0 @@ -version: '3' -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.3 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/apps/flarum/README.md b/apps/flarum/README.md deleted file mode 100644 index 5bd708fe..00000000 --- a/apps/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/apps/flarum/data.yml b/apps/flarum/data.yml deleted file mode 100755 index abc0d723..00000000 --- a/apps/flarum/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Flarum -tags: - - 建站 -title: 新一代的论坛软件,使在线讨论变得有趣 -type: 建站 -description: 新一代的论坛软件,使在线讨论变得有趣 -additionalProperties: - key: flarum - name: Flarum - tags: - - WebSite - shortDescZh: 新一代的论坛软件,使在线讨论变得有趣 - shortDescEn: The next-generation forum software that makes online discussion fun - type: website - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://flarum.org/ - github: https://github.com/flarum/flarum - document: https://docs.flarum.org/ diff --git a/apps/flarum/logo.png b/apps/flarum/logo.png deleted file mode 100644 index 13a2ed49..00000000 Binary files a/apps/flarum/logo.png and /dev/null differ diff --git a/apps/focalboard/7.11.4/data.yml b/apps/focalboard/7.11.4/data.yml deleted file mode 100644 index b69d765a..00000000 --- a/apps/focalboard/7.11.4/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 40098 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/apps/focalboard/7.11.4/data/config.json b/apps/focalboard/7.11.4/data/config.json deleted file mode 100644 index 185651fa..00000000 --- a/apps/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/apps/focalboard/7.11.4/data/postgres-config.json b/apps/focalboard/7.11.4/data/postgres-config.json deleted file mode 100644 index 7dc2dcfe..00000000 --- a/apps/focalboard/7.11.4/data/postgres-config.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "serverRoot": "http://localhost:8000", - "port": 8000, - "dbtype": "postgres", - "dbconfig": "postgres://boardsuser:boardsuser-password@focalboard-db/boards?sslmode=disable&connect_timeout=10", - "postgres_dbconfig": "dbname=boards sslmode=disable", - "useSSL": false, - "webpath": "./pack", - "filespath": "./data/files", - "telemetry": true, - "prometheusaddress": ":9092", - "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/apps/focalboard/7.11.4/docker-compose.yml b/apps/focalboard/7.11.4/docker-compose.yml deleted file mode 100644 index 5933d6ef..00000000 --- a/apps/focalboard/7.11.4/docker-compose.yml +++ /dev/null @@ -1,23 +0,0 @@ -version: '3' -services: - focalboard: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:8000" - volumes: - - "./data/config.json:/opt/focalboard/config.json" #sqlite - #- "./data/postgres-config.json:/opt/focalboard/config.json" #postgres,需要修改对应数据库信息 - - fbdata:/opt/focalboard/data - image: mattermost/focalboard:7.11.4 - labels: - createdBy: "Apps" - -volumes: - fbdata: - -networks: - 1panel-network: - external: true diff --git a/apps/focalboard/README.md b/apps/focalboard/README.md deleted file mode 100644 index 7d6cd1a0..00000000 --- a/apps/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/apps/focalboard/data.yml b/apps/focalboard/data.yml deleted file mode 100644 index b5cf2f2d..00000000 --- a/apps/focalboard/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Focalboard -tags: - - DevOps -title: Trello、Notion 和 Asana 的开源自托管替代方案 -type: DevOps -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: tool - 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 diff --git a/apps/focalboard/logo.png b/apps/focalboard/logo.png deleted file mode 100644 index 54c56561..00000000 Binary files a/apps/focalboard/logo.png and /dev/null differ diff --git a/apps/frpc/0.53.2/data.yml b/apps/frpc/0.53.2/data.yml deleted file mode 100644 index 2a164c2d..00000000 --- a/apps/frpc/0.53.2/data.yml +++ /dev/null @@ -1,36 +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 \ No newline at end of file diff --git a/apps/frpc/0.53.2/data/frpc.toml b/apps/frpc/0.53.2/data/frpc.toml deleted file mode 100644 index 3d6f6806..00000000 --- a/apps/frpc/0.53.2/data/frpc.toml +++ /dev/null @@ -1,8 +0,0 @@ -serverAddr = "0.0.0.0" -serverPort = 7000 - -webServer.addr = "0.0.0.0" -webServer.port = 40001 -webServer.user = "admin" -webServer.password = "password123456" -webServer.pprofEnable = false diff --git a/apps/frpc/0.53.2/data/frpc_full.toml b/apps/frpc/0.53.2/data/frpc_full.toml deleted file mode 100644 index 05d6cbe2..00000000 --- a/apps/frpc/0.53.2/data/frpc_full.toml +++ /dev/null @@ -1,360 +0,0 @@ -# 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 permisssions 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 heartbeat_interval is 10 and heartbeat_timeout 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 -metadatas.var1 = "abc" -metadatas.var2 = "123" - -[[proxies]] -name = "ssh_random" -type = "tcp" -localIP = "192.168.31.100" -localPort = 22 -# If remote_port 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 [server_addr] 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 custom_domains 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 -# route_by_http_user = abc -hostHeaderRewrite = "example.com" -# params with prefix "header_" will be used to update http request headers -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 - -[[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, local_ip and local_port 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, remote_port 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 keep_tunnel_open 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/apps/frpc/0.53.2/docker-compose.yml b/apps/frpc/0.53.2/docker-compose.yml deleted file mode 100644 index 6f7415cb..00000000 --- a/apps/frpc/0.53.2/docker-compose.yml +++ /dev/null @@ -1,12 +0,0 @@ -version: "3" -services: - frpc: - container_name: ${CONTAINER_NAME} - restart: always - network_mode: host - volumes: - - ./data/frpc.toml:/etc/frp/frpc.toml - image: snowdreamtech/frpc:0.53.2 - labels: - createdBy: "Apps" - diff --git a/apps/frpc/0.53.2/scripts/init.sh b/apps/frpc/0.53.2/scripts/init.sh deleted file mode 100644 index 659752e4..00000000 --- a/apps/frpc/0.53.2/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/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 - diff --git a/apps/frpc/README.md b/apps/frpc/README.md deleted file mode 100644 index 75b37dce..00000000 --- a/apps/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/apps/frpc/data.yml b/apps/frpc/data.yml deleted file mode 100644 index 4f40eecc..00000000 --- a/apps/frpc/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: frpc-frp 客户端 -tags: - - 实用工具 -title: 反向代理工具,常用于内网穿透(客户端) -type: 实用工具 -description: 反向代理工具,常用于内网穿透(客户端) -additionalProperties: - key: frpc - name: frpc-frp 客户端 - tags: - - Tool - shortDescZh: 反向代理工具,常用于内网穿透(客户端) - shortDescEn: A reverse proxy tool that is commonly used for intranet penetration(Client) - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://github.com/fatedier/frp - github: https://github.com/fatedier/frp - document: https://github.com/fatedier/frp/blob/dev/README_zh.md diff --git a/apps/frpc/logo.png b/apps/frpc/logo.png deleted file mode 100644 index 945b49e3..00000000 Binary files a/apps/frpc/logo.png and /dev/null differ diff --git a/apps/frps/0.53.2/data.yml b/apps/frps/0.53.2/data.yml deleted file mode 100644 index e71e29ff..00000000 --- a/apps/frps/0.53.2/data.yml +++ /dev/null @@ -1,30 +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 \ No newline at end of file diff --git a/apps/frps/0.53.2/data/frps.toml b/apps/frps/0.53.2/data/frps.toml deleted file mode 100644 index 1c23779b..00000000 --- a/apps/frps/0.53.2/data/frps.toml +++ /dev/null @@ -1,6 +0,0 @@ -bindPort = 7000 - -webServer.addr = "0.0.0.0" -webServer.port = 7500 -webServer.user = "admin" -webServer.password = "admin" \ No newline at end of file diff --git a/apps/frps/0.53.2/data/frps_full.toml b/apps/frps/0.53.2/data/frps_full.toml deleted file mode 100644 index 180a3b24..00000000 --- a/apps/frps/0.53.2/data/frps_full.toml +++ /dev/null @@ -1,154 +0,0 @@ -# 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 "bind_addr" field, no need square brackets, like "bind_addr = ::". -bindAddr = "0.0.0.0" -bindPort = 7000 - -# udp port used for kcp protocol, it can be same with 'bind_port'. -# 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 bind_addr -# proxy_bind_addr = "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 heartbeat_timeout 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. -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 bind_port -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 tcpmux_passthrough 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 est, 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 - -[[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/apps/frps/0.53.2/docker-compose.yml b/apps/frps/0.53.2/docker-compose.yml deleted file mode 100644 index 90c0c6dc..00000000 --- a/apps/frps/0.53.2/docker-compose.yml +++ /dev/null @@ -1,11 +0,0 @@ -version: "3" -services: - frps: - container_name: ${CONTAINER_NAME} - restart: always - network_mode: host - volumes: - - ./data/frps.toml:/etc/frp/frps.toml - image: snowdreamtech/frps:0.53.2 - labels: - createdBy: "Apps" diff --git a/apps/frps/0.53.2/scripts/init.sh b/apps/frps/0.53.2/scripts/init.sh deleted file mode 100644 index 0e4de58a..00000000 --- a/apps/frps/0.53.2/scripts/init.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -source ./.env - -sed -i "s/bindPort = .*$/bindPort = ${PANEL_APP_PORT_SERVICE}/" ./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/apps/frps/README.md b/apps/frps/README.md deleted file mode 100644 index 75b37dce..00000000 --- a/apps/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/apps/frps/data.yml b/apps/frps/data.yml deleted file mode 100644 index 45ddeae8..00000000 --- a/apps/frps/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: frps-frp 服务端 -tags: - - 实用工具 -title: 反向代理工具,常用于内网穿透(服务端) -type: 实用工具 -description: 反向代理工具,常用于内网穿透(服务端) -additionalProperties: - key: frps - name: frps-frp 服务端 - tags: - - Tool - shortDescZh: 反向代理工具,常用于内网穿透(服务端) - shortDescEn: A reverse proxy tool that is commonly used for intranet penetration(Server) - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://github.com/fatedier/frp - github: https://github.com/fatedier/frp - document: https://github.com/fatedier/frp/blob/dev/README_zh.md diff --git a/apps/frps/logo.png b/apps/frps/logo.png deleted file mode 100644 index 945b49e3..00000000 Binary files a/apps/frps/logo.png and /dev/null differ diff --git a/apps/gitea/1.21.4/data.yml b/apps/gitea/1.21.4/data.yml deleted file mode 100755 index 6145fe07..00000000 --- a/apps/gitea/1.21.4/data.yml +++ /dev/null @@ -1,56 +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 - - default: gitea - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库名 - random: true - required: true - rule: paramCommon - type: text - - default: gitea - envKey: PANEL_DB_USER - labelEn: User - labelZh: 数据库用户 - random: true - required: true - rule: paramCommon - type: text - - default: gitea - envKey: PANEL_DB_USER_PASSWORD - labelEn: Password - labelZh: 数据库用户密码 - random: true - required: true - rule: paramComplexity - type: password - - default: 3000 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: HTTP 端口 - required: true - rule: paramPort - type: number - - default: 222 - envKey: PANEL_APP_PORT_SSH - labelEn: Port - labelZh: SSH 端口 - required: true - rule: paramPort - type: number diff --git a/apps/gitea/1.21.4/docker-compose.yml b/apps/gitea/1.21.4/docker-compose.yml deleted file mode 100644 index 129750fd..00000000 --- a/apps/gitea/1.21.4/docker-compose.yml +++ /dev/null @@ -1,28 +0,0 @@ -version: '3' -services: - gitea: - image: gitea.cn/gitea/gitea:1.21.4 - 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/apps/gitea/1.21.4/scripts/upgrade.sh b/apps/gitea/1.21.4/scripts/upgrade.sh deleted file mode 100644 index 2cf758d2..00000000 --- a/apps/gitea/1.21.4/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/apps/gitea/README.md b/apps/gitea/README.md deleted file mode 100644 index 41253bc1..00000000 --- a/apps/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/apps/gitea/data.yml b/apps/gitea/data.yml deleted file mode 100755 index 9ec8bc74..00000000 --- a/apps/gitea/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Gitea -tags: - - DevOps -title: 新一代的代码托管平台 -type: DevOps -description: 新一代的代码托管平台 -additionalProperties: - key: gitea - name: Gitea - tags: - - DevOps - shortDescZh: 新一代的代码托管平台 - shortDescEn: The next generation of code hosting platform - type: tool - crossVersionUpdate: false - limit: 0 - recommend: 10 - website: https://gitea.io/ - github: https://github.com/go-gitea/gitea - document: https://docs.gitea.io/ diff --git a/apps/gitea/logo.png b/apps/gitea/logo.png deleted file mode 100644 index 82732ec6..00000000 Binary files a/apps/gitea/logo.png and /dev/null differ diff --git a/apps/grafana/10.3.1/data.yml b/apps/grafana/10.3.1/data.yml deleted file mode 100644 index fd185de9..00000000 --- a/apps/grafana/10.3.1/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 3000 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/apps/grafana/10.3.1/docker-compose.yml b/apps/grafana/10.3.1/docker-compose.yml deleted file mode 100644 index b2abb713..00000000 --- a/apps/grafana/10.3.1/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -version: '3' -services: - grafana: - container_name: ${CONTAINER_NAME} - image: grafana/grafana:10.3.1 - 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/apps/grafana/README.md b/apps/grafana/README.md deleted file mode 100644 index c8cdd2d4..00000000 --- a/apps/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/apps/grafana/data.yml b/apps/grafana/data.yml deleted file mode 100644 index dd25b82c..00000000 --- a/apps/grafana/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Grafana -tags: - - 实用工具 -title: 用于监控和可观察的开源平台 -type: 实用工具 -description: 用于监控和可观察的开源平台 -additionalProperties: - key: grafana - name: Grafana - tags: - - Tool - shortDescZh: 用于监控和可观察的开源平台 - shortDescEn: The open-source platform for monitoring and observability - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://grafana.com/ - github: https://github.com/grafana/grafana - document: https://grafana.com/docs/grafana \ No newline at end of file diff --git a/apps/grafana/logo.png b/apps/grafana/logo.png deleted file mode 100644 index e6f7ea05..00000000 Binary files a/apps/grafana/logo.png and /dev/null differ diff --git a/apps/halo/2.11.3/data.yml b/apps/halo/2.11.3/data.yml deleted file mode 100644 index 1705aa30..00000000 --- a/apps/halo/2.11.3/data.yml +++ /dev/null @@ -1,60 +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: halo - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库名 - random: true - required: true - rule: paramCommon - type: text - - default: halo - envKey: PANEL_DB_USER - labelEn: User - labelZh: 数据库用户 - random: true - required: true - rule: paramCommon - type: text - - default: halo - envKey: PANEL_DB_USER_PASSWORD - labelEn: Password - labelZh: 数据库用户密码 - random: true - required: true - rule: paramComplexity - type: password - - default: http://localhost:8080 - edit: true - envKey: HALO_EXTERNAL_URL - labelEn: External URL - labelZh: 外部访问地址 - required: true - rule: paramExtUrl - type: text - - default: 8080 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/apps/halo/2.11.3/docker-compose.yml b/apps/halo/2.11.3/docker-compose.yml deleted file mode 100644 index c6deacb2..00000000 --- a/apps/halo/2.11.3/docker-compose.yml +++ /dev/null @@ -1,29 +0,0 @@ -version: '3' -services: - halo: - image: halohub/halo:2.11.3 - 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} - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/apps/halo/README.md b/apps/halo/README.md deleted file mode 100644 index 569a8afd..00000000 --- a/apps/halo/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# Halo - -**Halo** 是一个简洁、高效的开源建站平台。它提供了易于使用的界面和丰富的功能,使用户可以轻松地创建个人博客或专业网站。 - -## 主要功能: - -- **简洁易用**:Halo 的界面设计简洁清晰,使用户能够快速上手并轻松管理网站内容。 -- **高度可定制**:Halo 提供了丰富的主题和插件系统,用户可以根据自己的需求选择合适的主题和插件,定制网站的外观和功能。 -- **多媒体支持**:Halo 支持插入和管理多媒体内容,如图片、视频和音频,使网站内容更加丰富和生动。 -- **SEO 友好**:Halo 内置了优化的 SEO 功能,帮助您提升网站在搜索引擎中的排名,增加曝光和访问量。 -- **安全可靠**:Halo 针对安全性进行了严格设计和测试,保护网站数据的安全和可靠性。 - -## 相关链接: - -- 官网: -- 应用市场: -- 社区: -- GitHub: \ No newline at end of file diff --git a/apps/halo/data.yml b/apps/halo/data.yml deleted file mode 100755 index 357e489c..00000000 --- a/apps/halo/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Halo -tags: - - 建站 -title: 强大易用的开源建站工具 -type: 建站 -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: 3 - website: https://halo.run/ - github: https://github.com/halo-dev/halo - document: https://docs.halo.run/ diff --git a/apps/halo/logo.png b/apps/halo/logo.png deleted file mode 100644 index 044ab596..00000000 Binary files a/apps/halo/logo.png and /dev/null differ diff --git a/apps/heimdall/2021.11.28/data.yml b/apps/heimdall/2021.11.28/data.yml deleted file mode 100644 index 95f70538..00000000 --- a/apps/heimdall/2021.11.28/data.yml +++ /dev/null @@ -1,25 +0,0 @@ -additionalProperties: - formFields: - - default: 40049 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: HTTP Port - labelZh: HTTP端口 - required: true - rule: paramPort - type: number - - default: 40050 - edit: true - envKey: PANEL_APP_PORT_HTTPS - labelEn: HTTPS Port - labelZh: HTTPS端口 - 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/apps/heimdall/2021.11.28/docker-compose.yml b/apps/heimdall/2021.11.28/docker-compose.yml deleted file mode 100644 index 55b0cdee..00000000 --- a/apps/heimdall/2021.11.28/docker-compose.yml +++ /dev/null @@ -1,23 +0,0 @@ -version: '3' -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:2021.11.28 - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true diff --git a/apps/heimdall/README.md b/apps/heimdall/README.md deleted file mode 100644 index 6fc48db9..00000000 --- a/apps/heimdall/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# Heimdall - -**Heimdall** 是所有 Web 应用程序的仪表板。不过,它不需要仅限于应用程序,您可以添加指向您喜欢的任何内容的链接。 - -优势: - -- 易于编辑、保存,直接在线操作即可,无须编辑代码。 -- 图标和颜色完全自定义,不需要通过更改整体模板来实现 -- 支持分类嵌套,通过标签进行分类管理,不用担心主页放不下 -- 支持更多模式/应用种类,除普通链接外还可以支持增强型标签,显示实时数据 -- 支持内嵌搜索框,更适合当浏览器主页使用 -- 支持多用户使用,不同用户不同主页,支持加密 \ No newline at end of file diff --git a/apps/heimdall/data.yml b/apps/heimdall/data.yml deleted file mode 100644 index c728f732..00000000 --- a/apps/heimdall/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Heimdall -tags: - - 实用工具 -title: 应用程序仪表板和启动器 -type: 实用工具 -description: 应用程序仪表板和启动器 -additionalProperties: - key: heimdall - name: Heimdall - tags: - - Tool - shortDescZh: 应用程序仪表板和启动器 - shortDescEn: An Application dashboard and launcher - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://heimdall.site/ - github: https://github.com/linuxserver/Heimdall - document: https://github.com/linuxserver/Heimdall \ No newline at end of file diff --git a/apps/heimdall/logo.png b/apps/heimdall/logo.png deleted file mode 100644 index 8f907346..00000000 Binary files a/apps/heimdall/logo.png and /dev/null differ diff --git a/apps/home-assistant/2023.8.0.dev20230723/data.yml b/apps/home-assistant/2023.8.0.dev20230723/data.yml deleted file mode 100644 index 37a0a336..00000000 --- a/apps/home-assistant/2023.8.0.dev20230723/data.yml +++ /dev/null @@ -1,17 +0,0 @@ -additionalProperties: - formFields: - - default: 8123 - disabled: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: HTTP 端口 - 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/apps/home-assistant/2023.8.0.dev20230723/docker-compose.yml b/apps/home-assistant/2023.8.0.dev20230723/docker-compose.yml deleted file mode 100644 index e63f324e..00000000 --- a/apps/home-assistant/2023.8.0.dev20230723/docker-compose.yml +++ /dev/null @@ -1,13 +0,0 @@ -version: '3' -services: - homeassistant: - container_name: ${CONTAINER_NAME} - restart: always - network_mode: "host" - volumes: - - "./data:/config" - environment: - - TZ=${TIME_ZONE} - image: homeassistant/home-assistant:2023.8.0.dev20230723 - labels: - createdBy: "Apps" diff --git a/apps/home-assistant/README.md b/apps/home-assistant/README.md deleted file mode 100644 index 5ba03cda..00000000 --- a/apps/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/apps/home-assistant/data.yml b/apps/home-assistant/data.yml deleted file mode 100644 index bef5dacf..00000000 --- a/apps/home-assistant/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Home Assistant -tags: - - 实用工具 -title: 开源家庭自动化,将本地控制和隐私放在首位。 -type: 实用工具 -description: 开源家庭自动化,将本地控制和隐私放在首位。 -additionalProperties: - key: home-assistant - name: Home Assistant - tags: - - Tool - shortDescZh: 开源家庭自动化,将本地控制和隐私放在首位。 - shortDescEn: Open source home automation that puts local control and privacy first. - type: tool - 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/ diff --git a/apps/home-assistant/logo.png b/apps/home-assistant/logo.png deleted file mode 100644 index c6224471..00000000 Binary files a/apps/home-assistant/logo.png and /dev/null differ diff --git a/apps/it-tools/2023.12.21-5ed3693/data.yml b/apps/it-tools/2023.12.21-5ed3693/data.yml deleted file mode 100644 index 3d4bb50e..00000000 --- a/apps/it-tools/2023.12.21-5ed3693/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 40116 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/apps/it-tools/2023.12.21-5ed3693/docker-compose.yml b/apps/it-tools/2023.12.21-5ed3693/docker-compose.yml deleted file mode 100644 index 6b1e159a..00000000 --- a/apps/it-tools/2023.12.21-5ed3693/docker-compose.yml +++ /dev/null @@ -1,16 +0,0 @@ -version: '3' -services: - it-tools: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:80" - image: corentinth/it-tools:2023.12.21-5ed3693 - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true diff --git a/apps/it-tools/README.md b/apps/it-tools/README.md deleted file mode 100644 index ec4956b5..00000000 --- a/apps/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 种不同的功能。 -- Mages and Videos (图片与视频)工具类,包含 SVG 占位符生成器,二维码生成器等 3 种功能。 -- Development 工具类,包含 Docker run 到 Docker compose 转换器,定时任务生成器,SQL 美化与格式化等 10 种不同功能。 -- 另外还有 Network(网络)工具类,Math(数学)工具类,Measurement(测量)工具类,文本工具类,数据工具类等等 \ No newline at end of file diff --git a/apps/it-tools/data.yml b/apps/it-tools/data.yml deleted file mode 100644 index 49a502b7..00000000 --- a/apps/it-tools/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: IT-Tools -tags: - - 开发工具 -title: 为开发人员提供方便的在线工具集合,具有出色的用户体验 -type: 开发工具 -description: 为开发人员提供方便的在线工具集合,具有出色的用户体验 -additionalProperties: - key: it-tools - name: IT-Tools - tags: - - DevTool - shortDescZh: 为开发人员提供方便的在线工具集合,具有出色的用户体验 - shortDescEn: Collection of handy online tools for developers, with great UX - type: tool - 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 diff --git a/apps/it-tools/logo.png b/apps/it-tools/logo.png deleted file mode 100644 index 7ac104d0..00000000 Binary files a/apps/it-tools/logo.png and /dev/null differ diff --git a/apps/jellyfin/10.8.13/data.yml b/apps/jellyfin/10.8.13/data.yml deleted file mode 100755 index 8737d49f..00000000 --- a/apps/jellyfin/10.8.13/data.yml +++ /dev/null @@ -1,24 +0,0 @@ -additionalProperties: - formFields: - - default: 8096 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: WebUI Port - labelZh: 网页端口 - required: true - rule: paramPort - type: number - - default: ./data/media - edit: true - envKey: MEDIA_FOLDER_PATH - labelEn: Media folder path - labelZh: 媒体文件夹路径 - required: true - type: text - - default: ./data/cache - edit: true - envKey: CACHE_FOLDER_PATH - labelEn: Cache folder path - labelZh: 缓存文件夹路径 - required: true - type: text diff --git a/apps/jellyfin/10.8.13/data/cache/.gitkeep b/apps/jellyfin/10.8.13/data/cache/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/jellyfin/10.8.13/data/config/.gitkeep b/apps/jellyfin/10.8.13/data/config/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/jellyfin/10.8.13/data/media/.gitkeep b/apps/jellyfin/10.8.13/data/media/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/jellyfin/10.8.13/docker-compose.yml b/apps/jellyfin/10.8.13/docker-compose.yml deleted file mode 100644 index 98343799..00000000 --- a/apps/jellyfin/10.8.13/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -version: '3' -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.8.13" - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/apps/jellyfin/README.md b/apps/jellyfin/README.md deleted file mode 100644 index e0e9eac8..00000000 --- a/apps/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/apps/jellyfin/data.yml b/apps/jellyfin/data.yml deleted file mode 100755 index 8fd82dcf..00000000 --- a/apps/jellyfin/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Jellyfin -tags: - - 多媒体 -title: 多媒体应用程序软件套装 -type: 多媒体 -description: 多媒体应用程序软件套装 -additionalProperties: - key: jellyfin - name: Jellyfin - tags: - - Media - shortDescZh: 多媒体应用程序软件套装 - shortDescEn: A multimedia application software suite - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://jellyfin.org/ - github: https://github.com/jellyfin/jellyfin - document: https://jellyfin.org/docs/ diff --git a/apps/jellyfin/logo.png b/apps/jellyfin/logo.png deleted file mode 100644 index 617e9f18..00000000 Binary files a/apps/jellyfin/logo.png and /dev/null differ diff --git a/apps/jenkins/2.442/data.yml b/apps/jenkins/2.442/data.yml deleted file mode 100755 index 3212a505..00000000 --- a/apps/jenkins/2.442/data.yml +++ /dev/null @@ -1,17 +0,0 @@ -additionalProperties: - formFields: - - default: /usr/bin/docker - edit: true - envKey: DOCKER_BINARY - labelEn: Docker Binary - labelZh: Docker二进制文件 - 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/apps/jenkins/2.442/docker-compose.yml b/apps/jenkins/2.442/docker-compose.yml deleted file mode 100644 index b28fac48..00000000 --- a/apps/jenkins/2.442/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -version: '3' -services: - jenkins: - container_name: ${CONTAINER_NAME} - image: jenkins/jenkins:2.442 - restart: always - privileged: true - user: root - ports: - - ${PANEL_APP_PORT_HTTP}:8080 - volumes: - - ./jenkins:/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/apps/jenkins/README.md b/apps/jenkins/README.md deleted file mode 100644 index f2d5e28c..00000000 --- a/apps/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/apps/jenkins/data.yml b/apps/jenkins/data.yml deleted file mode 100755 index 31cceda0..00000000 --- a/apps/jenkins/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Jenkins -tags: - - DevOps -title: 开源的持续集成工具 -type: DevOps -description: 开源的持续集成工具 -additionalProperties: - key: jenkins - name: Jenkins - tags: - - DevOps - shortDescZh: 开源的持续集成工具 - shortDescEn: Build great things at any scale - type: tool - crossVersionUpdate: false - limit: 1 - recommend: 0 - website: https://www.jenkins.io/ - github: https://github.com/jenkinsci/jenkins - document: https://www.jenkins.io/doc/book/ diff --git a/apps/jenkins/logo.png b/apps/jenkins/logo.png deleted file mode 100644 index 2c0a5150..00000000 Binary files a/apps/jenkins/logo.png and /dev/null differ diff --git a/apps/jumpserver/3.10.3/data.yml b/apps/jumpserver/3.10.3/data.yml deleted file mode 100644 index 1a9b2b6a..00000000 --- a/apps/jumpserver/3.10.3/data.yml +++ /dev/null @@ -1,143 +0,0 @@ -additionalProperties: - formFields: - - default: vYneAbsXUhe4BghEeedNL7nfWLwaTTmhnwQMvjYOIG25Ofzghk - edit: true - envKey: SECRET_KEY - labelEn: Cryptographic signing - labelZh: 加密签名 - required: true - type: password - - default: K1ffDfLSIK8SV2PZj6VaxOiv8KuawlJK - edit: true - envKey: BOOTSTRAP_TOKEN - labelEn: Bootstrap token - labelZh: 认证令牌 - required: true - type: password - - default: "false" - envKey: DEBUG - labelEn: Debug mode - labelZh: 调试模式 - required: true - type: select - values: - - label: 开启 - value: "true" - - label: 关闭 - value: "false" - - 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" - - 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: jumpserver - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库名 - random: true - required: true - rule: paramCommon - type: text - - default: jumpserver - envKey: PANEL_DB_USER - labelEn: Database User - labelZh: 数据库用户 - random: true - required: true - rule: paramCommon - type: text - - default: jumpserver - envKey: PANEL_DB_USER_PASSWORD - labelEn: Database User Password - labelZh: 数据库用户密码 - random: true - required: true - rule: paramComplexity - type: password - - default: "" - edit: true - envKey: REDIS_HOST - key: redis - labelEn: Redis Service - labelZh: 缓存服务服务 - required: true - type: service - - default: "" - edit: true - envKey: PANEL_REDIS_ROOT_PASSWORD - labelEn: Redis Service Password - labelZh: 缓存服务服务密码 - required: true - rule: paramCommon - type: password - - default: 8080 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Web Port - labelZh: Web 端口 - required: true - rule: paramPort - type: number - - default: 2222 - edit: true - envKey: SSH_PORT - labelEn: SSH port - labelZh: SSH 端口 - required: true - rule: paramPort - type: number - - default: 33061 - edit: true - envKey: MAGNUS_MYSQL_PORT - labelEn: Magnus MySQL port - labelZh: Magnus MySQL 端口 - rule: paramPort - type: number - - default: 33062 - edit: true - envKey: MAGNUS_MARIADB_PORT - labelEn: Magnus MariaDB port - labelZh: Magnus MariaDB 端口 - rule: paramPort - type: number - - default: 63790 - edit: true - envKey: MAGNUS_REDIS_PORT - labelEn: Magnus Redis port - labelZh: Magnus Redis 端口 - rule: paramPort - type: number - - default: "" - edit: true - envKey: DOMAINS - labelEn: DOMAINS - labelZh: DOMAINS - type: text \ No newline at end of file diff --git a/apps/jumpserver/3.10.3/docker-compose.yml b/apps/jumpserver/3.10.3/docker-compose.yml deleted file mode 100644 index d1226e40..00000000 --- a/apps/jumpserver/3.10.3/docker-compose.yml +++ /dev/null @@ -1,43 +0,0 @@ -version: '3' -services: - jumpserver: - image: jumpserver/jms_all:v3.10.3 - 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/core/data - - ./data/koko/data:/opt/jumpserver/koko/data - - ./data/lion/data:/opt/jumpserver/lion/data - - ./data/magnus/data:/opt/jumpserver/magnus/data - - ./data/nginx/data:/var/log/nginx - networks: - - 1panel-network -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/apps/jumpserver/README.md b/apps/jumpserver/README.md deleted file mode 100644 index f80986ba..00000000 --- a/apps/jumpserver/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# 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/apps/jumpserver/data.yml b/apps/jumpserver/data.yml deleted file mode 100644 index ce876221..00000000 --- a/apps/jumpserver/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: JumpServer -tags: - - 安全 -title: JumpServer 开源堡垒机 -type: 安全 -description: JumpServer 开源堡垒机 -additionalProperties: - key: jumpserver - name: JumpServer - tags: - - Security - shortDescZh: 广受欢迎的开源堡垒机 - shortDescEn: The world's first open-source Bastion Host - type: tool - crossVersionUpdate: true - limit: 1 - recommend: 9 - website: https://www.jumpserver.org - github: https://github.com/jumpserver/jumpserver - document: https://docs.jumpserver.org \ No newline at end of file diff --git a/apps/jumpserver/logo.png b/apps/jumpserver/logo.png deleted file mode 100644 index 529b3c7a..00000000 Binary files a/apps/jumpserver/logo.png and /dev/null differ diff --git a/apps/kafka/3.6.1/data.yml b/apps/kafka/3.6.1/data.yml deleted file mode 100644 index 06331eee..00000000 --- a/apps/kafka/3.6.1/data.yml +++ /dev/null @@ -1,11 +0,0 @@ -additionalProperties: - formFields: - - default: 9092 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: TCP 端口 - required: true - rule: paramPort - type: number - diff --git a/apps/kafka/3.6.1/docker-compose.yml b/apps/kafka/3.6.1/docker-compose.yml deleted file mode 100644 index de69df48..00000000 --- a/apps/kafka/3.6.1/docker-compose.yml +++ /dev/null @@ -1,30 +0,0 @@ -version: '3' -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 - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:9092" - image: bitnami/kafka:3.6.1 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/apps/kafka/README.md b/apps/kafka/README.md deleted file mode 100644 index 4e6be683..00000000 --- a/apps/kafka/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# Kafka - -Kafka 一个分布式流处理平台 - -## 主要功能: - -- 它能够让应用发布或预订数据或事件流。 -- 它能够以可容错的持久方式准确地存储记录(即,按照记录的出现顺序)。 -- 它能够实时处理记录(一出现便处理)。 diff --git a/apps/kafka/data.yml b/apps/kafka/data.yml deleted file mode 100644 index 87fe1852..00000000 --- a/apps/kafka/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: Kafka -tags: - - 中间件 -title: Kafka 一个分布式流处理平台 -type: 中间件 -description: Kafka 是一个分布式流处理平台 -additionalProperties: - key: kafka - name: Kafka - tags: - - Middleware - shortDescZh: Apache Kafka 是一种分布式数据存储,经过优化以实时提取和处理流数据。流数据是指由数千个数据源持续生成的数据,通常可同时发送数据记录。流平台需要处理这些持续流入的数据,按照顺序逐步处理。 - shortDescEn: Apache Kafka is a distributed data store optimized for ingesting and processing streaming data in real-time. Streaming data is data that is continuously generated by thousands of data sources, which typically send the data records in simultaneously. A streaming platform needs to handle this constant influx of data, and process the data sequentially and incrementally. - type: tool - crossVersionUpdate: false - limit: 0 - website: https://kafka.apache.org/ - github: https://github.com/apache/kafka - document: https://kafka.apache.org/documentation/ \ No newline at end of file diff --git a/apps/kafka/logo.png b/apps/kafka/logo.png deleted file mode 100644 index b17cbb0a..00000000 Binary files a/apps/kafka/logo.png and /dev/null differ diff --git a/apps/kodbox/1.4505/1.4104/data.yml b/apps/kodbox/1.4505/1.4104/data.yml deleted file mode 100755 index fef861e2..00000000 --- a/apps/kodbox/1.4505/1.4104/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/apps/kodbox/1.4505/1.4104/docker-compose.yml b/apps/kodbox/1.4505/1.4104/docker-compose.yml deleted file mode 100644 index 064d7bfa..00000000 --- a/apps/kodbox/1.4505/1.4104/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -version: "3.5" - -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/apps/kodbox/1.4505/data.yml b/apps/kodbox/1.4505/data.yml deleted file mode 100755 index fef861e2..00000000 --- a/apps/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/apps/kodbox/1.4505/docker-compose.yml b/apps/kodbox/1.4505/docker-compose.yml deleted file mode 100644 index 064d7bfa..00000000 --- a/apps/kodbox/1.4505/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -version: "3.5" - -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/apps/kodbox/README.md b/apps/kodbox/README.md deleted file mode 100644 index ca89c6d4..00000000 --- a/apps/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/apps/kodbox/data.yml b/apps/kodbox/data.yml deleted file mode 100755 index 549f846c..00000000 --- a/apps/kodbox/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Kodbox -tags: - - 云存储 -title: 可道云推出的企业级私有云存储解决方案 -type: 云存储 -description: 可道云推出的企业级私有云存储解决方案 -additionalProperties: - key: kodbox - name: Kodbox - tags: - - Storage - shortDescZh: 可道云推出的企业级私有云存储解决方案 - shortDescEn: Kodbox is a file manager for web. It is also a web code editor, which allows you to develop websites directly within the web browser. - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://kodcloud.com/ - github: https://github.com/kalcaddle/kodbox - document: https://docs.kodcloud.com/ diff --git a/apps/kodbox/logo.png b/apps/kodbox/logo.png deleted file mode 100644 index 7b7da941..00000000 Binary files a/apps/kodbox/logo.png and /dev/null differ diff --git a/apps/koishi/1.13.6/data.yml b/apps/koishi/1.13.6/data.yml deleted file mode 100644 index 177cb36e..00000000 --- a/apps/koishi/1.13.6/data.yml +++ /dev/null @@ -1,58 +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 - rule: paramComplexity - 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/apps/koishi/1.13.6/docker-compose.yml b/apps/koishi/1.13.6/docker-compose.yml deleted file mode 100644 index 5ce63593..00000000 --- a/apps/koishi/1.13.6/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -version: '3' -services: - koishi: - image: koishijs/koishi:v1.13.6 - 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/apps/koishi/README.md b/apps/koishi/README.md deleted file mode 100644 index ddeec27c..00000000 --- a/apps/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/apps/koishi/data.yml b/apps/koishi/data.yml deleted file mode 100644 index b0a017bf..00000000 --- a/apps/koishi/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Koishi -tags: - - 实用工具 -title: 跨平台、可扩展、高性能的聊天机器人框架 -type: 实用工具 -description: 跨平台、可扩展、高性能的聊天机器人框架 -additionalProperties: - key: koishi - name: Koishi - tags: - - Tool - shortDescZh: 跨平台、可扩展、高性能的聊天机器人框架 - shortDescEn: Cross-platform, extensive, high-performance chatbot framework - type: tool - 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 \ No newline at end of file diff --git a/apps/koishi/logo.png b/apps/koishi/logo.png deleted file mode 100644 index 7c45cc5d..00000000 Binary files a/apps/koishi/logo.png and /dev/null differ diff --git a/apps/komga/1.10.3/data.yml b/apps/komga/1.10.3/data.yml deleted file mode 100644 index d5bdafc3..00000000 --- a/apps/komga/1.10.3/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 25600 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/apps/komga/1.10.3/docker-compose.yml b/apps/komga/1.10.3/docker-compose.yml deleted file mode 100644 index b9814ee8..00000000 --- a/apps/komga/1.10.3/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -version: '3' -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.10.3 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/apps/komga/README.md b/apps/komga/README.md deleted file mode 100644 index 3e9c07ca..00000000 --- a/apps/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/apps/komga/data.yml b/apps/komga/data.yml deleted file mode 100644 index 6ecff97f..00000000 --- a/apps/komga/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Komga -tags: - - 多媒体 -title: 免费开源的漫画、杂志媒体服务 -type: 多媒体 -description: 免费开源的漫画、杂志媒体服务 -additionalProperties: - key: komga - name: Komga - tags: - - Media - shortDescZh: 免费开源的漫画、杂志媒体服务 - shortDescEn: Komga is a media server for your comics, mangas, BDs and magazines. - type: tool - crossVersionUpdate: true - limit: 1 - recommend: 0 - website: https://komga.org/ - github: https://github.com/gotson/komga - document: https://komga.org/docs/introduction diff --git a/apps/komga/logo.png b/apps/komga/logo.png deleted file mode 100644 index a8d4606e..00000000 Binary files a/apps/komga/logo.png and /dev/null differ diff --git a/apps/kubepi/1.7.0/data.yml b/apps/kubepi/1.7.0/data.yml deleted file mode 100755 index ebd49f4c..00000000 --- a/apps/kubepi/1.7.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/apps/kubepi/1.7.0/docker-compose.yml b/apps/kubepi/1.7.0/docker-compose.yml deleted file mode 100644 index 628315ea..00000000 --- a/apps/kubepi/1.7.0/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -version: '3' -services: - kubepi: - image: 1panel/kubepi:v1.7.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/apps/kubepi/README.md b/apps/kubepi/README.md deleted file mode 100644 index 24a65c5c..00000000 --- a/apps/kubepi/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# KubePi 功能简介 - -KubePi 是一款功能强大的 Kubernetes 管理工具,旨在简化和增强 Kubernetes 集群的管理和监控。 - -## 主要功能: - -### 集群管理 - -KubePi 允许您轻松管理 Kubernetes 集群,包括创建、扩展、缩减和删除集群。您可以通过简单的界面完成这些操作,无需深入了解 Kubernetes 的复杂性。 - -### 应用部署 - -使用 KubePi,您可以快速部署应用程序到 Kubernetes 集群中。它支持 Helm Charts 和自定义 YAML 文件,使应用程序的部署变得简单而可控。 - -### 监控和日志 - -KubePi 提供了强大的监控和日志功能,帮助您实时监视集群的健康状况和应用程序的性能。它整合了 Prometheus 和 Grafana,提供了直观的仪表板,同时还能够查看容器日志。 - -### 配置管理 - -通过 KubePi,您可以轻松管理配置文件,包括 ConfigMaps 和 Secrets。它提供了一个集中的界面,用于查看、编辑和更新配置。 - -### 安全性 - -KubePi 支持 RBAC(基于角色的访问控制),可帮助您管理用户和团队对集群资源的访问权限,从而增强安全性。 - -### 自动化 - -KubePi 提供了自动化工具,可以自动扩展和缩减集群,以满足应用程序的需求。它还支持自动备份和恢复操作,确保集群的可靠性。 \ No newline at end of file diff --git a/apps/kubepi/data.yml b/apps/kubepi/data.yml deleted file mode 100755 index e371271f..00000000 --- a/apps/kubepi/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: KubePi -tags: - - 实用工具 -title: 现代化的 K8s 面板 -type: 实用工具 -description: 现代化的 K8s 面板 -additionalProperties: - key: kubepi - name: KubePi - tags: - - Tool - shortDescZh: 现代化的 K8s 面板 - shortDescEn: A modernized K8s dashboard - type: tool - crossVersionUpdate: false - limit: 0 - recommend: 9999 - website: https://github.com/1Panel-dev/ - github: https://github.com/1Panel-dev/KubePi - document: https://github.com/1Panel-dev/KubePi/blob/master/README.md diff --git a/apps/kubepi/logo.png b/apps/kubepi/logo.png deleted file mode 100644 index 19193d60..00000000 Binary files a/apps/kubepi/logo.png and /dev/null differ diff --git a/apps/lsky-pro/README.md b/apps/lsky-pro/README.md deleted file mode 100644 index f91624e1..00000000 --- a/apps/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/apps/lsky-pro/data.yml b/apps/lsky-pro/data.yml deleted file mode 100644 index 459b2add..00000000 --- a/apps/lsky-pro/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: Lsky-pro -tags: - - 云存储 -title: 用于在线上传、管理图片的图床程序 -type: 云存储 -description: 用于在线上传、管理图片的图床程序 -additionalProperties: - key: lsky-pro - name: Lsky-pro - tags: - - Storage - shortDescZh: 用于在线上传、管理图片的图床程序 - shortDescEn: An image bed program for uploading and managing images online - type: tool - crossVersionUpdate: true - limit: 0 - website: https://hub.docker.com/r/halcyonazure/lsky-pro-docker - github: https://github.com/lsky-org/lsky-pro - document: https://docs.lsky.pro/ diff --git a/apps/lsky-pro/latest/data.yml b/apps/lsky-pro/latest/data.yml deleted file mode 100644 index 4f86dac5..00000000 --- a/apps/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/apps/lsky-pro/latest/docker-compose.yml b/apps/lsky-pro/latest/docker-compose.yml deleted file mode 100644 index 2201a4fd..00000000 --- a/apps/lsky-pro/latest/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -version: '3' -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/apps/lsky-pro/logo.png b/apps/lsky-pro/logo.png deleted file mode 100644 index 9b6a788c..00000000 Binary files a/apps/lsky-pro/logo.png and /dev/null differ diff --git a/apps/maddy-mail/0.7.1/data.yml b/apps/maddy-mail/0.7.1/data.yml deleted file mode 100644 index 041ab794..00000000 --- a/apps/maddy-mail/0.7.1/data.yml +++ /dev/null @@ -1,56 +0,0 @@ -additionalProperties: - formFields: - - default: 25 - disabled: true - envKey: SMTP_IN_PORT - labelEn: SMTP inbound port - labelZh: SMTP 入站端口 - required: true - rule: paramPort - type: number - - default: 143 - disabled: true - envKey: IMAP4_PORT - labelEn: IMAP4 port - labelZh: IMAP4 端口 - required: true - rule: paramPort - type: number - - default: 993 - disabled: true - envKey: IMAP4_PORT2 - labelEn: IMAP4 port - labelZh: IMAP4 端口 - required: true - rule: paramPort - type: number - - default: 465 - disabled: true - envKey: SMTP_S_PORT - labelEn: SMTP Submission ports - labelZh: SMTP 提交端口 - required: true - rule: paramPort - type: number - - default: 587 - disabled: true - envKey: SMTP_S_PORT2 - labelEn: SMTP Submission ports - labelZh: SMTP 提交端口 - required: true - rule: paramPort - type: number - - default: mail.example.com - edit: true - envKey: MAIL_HOSTNAME - labelEn: Mail MX hostname - labelZh: 邮箱 MX 主机名 - required: true - type: text - - default: example.com - edit: true - envKey: MAIL_DOMAIN - labelEn: Mail domain - labelZh: 邮箱域名 - required: true - type: text diff --git a/apps/maddy-mail/0.7.1/docker-compose.yml b/apps/maddy-mail/0.7.1/docker-compose.yml deleted file mode 100644 index 9c10258b..00000000 --- a/apps/maddy-mail/0.7.1/docker-compose.yml +++ /dev/null @@ -1,29 +0,0 @@ -version: '3' -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.7.1 - labels: - createdBy: "Apps" - -volumes: - maddydata: - external: true - -networks: - 1panel-network: - external: true diff --git a/apps/maddy-mail/0.7.1/scripts/init.sh b/apps/maddy-mail/0.7.1/scripts/init.sh deleted file mode 100644 index fcbb0226..00000000 --- a/apps/maddy-mail/0.7.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/apps/maddy-mail/0.7.1/scripts/uninstall.sh b/apps/maddy-mail/0.7.1/scripts/uninstall.sh deleted file mode 100644 index 1a62d5e5..00000000 --- a/apps/maddy-mail/0.7.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/apps/maddy-mail/README.md b/apps/maddy-mail/README.md deleted file mode 100644 index 516f9a36..00000000 --- a/apps/maddy-mail/README.md +++ /dev/null @@ -1,98 +0,0 @@ -# 使用说明 - -## 1. 准备域名证书 -使用`acme.sh`、`certbot`、手动上传等方式准备好域名证书,注意需要按需修改。 - -证书对应域名为邮箱`MX`主机名如`mail.example.com `。 - -## 2. 创建Docker存储卷 -``` -docker volume create maddydata -``` - -## 3. 安装应用 - -应用商店安装应用, - -第一次安装会显示异常,容器无法正常运行,不必在意,因为缺少证书文件。 - -忽略错误,进行下一步操作。 - - -## 4. 域名证书存放到存储卷 - -存储卷默认路径如下 -`/var/lib/docker/volumes/maddydata/_data/` - -``` -# 进入存储卷路径 -cd $(docker volume inspect maddydata --format '{{.Mountpoint}}') - -# 创建证书文件夹 -mkdir -p tls -``` -上传证书和私钥到`tls`文件夹,并重命名为 -- fullchain.pem -- privkey.pem - -按要求上传完成证书文件后,容器会自动正常运行。 - -## 5. 设置DKIM DNS解析 -### 5.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=" -``` - -### 5.2 设置DNS TXT记录 - -根据获取的信息设置`DNS解析` - -例子如下: -为 `default._domainkey.example.com` 添加`TXT`记录,值设置为`v=DKIM1; k=ed25519; p=nAcUUozPlhc4VPhp7hZl+owES7j7OlEv0laaDEDBAqg=`。 - -## 6. 设置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` | - -## 7. 创建发送账户 - -面板`容器`界面,连接容器终端,执行以下命令 - -- 注意按需修改 - -``` -maddy creds create postmaster@example.com - -maddy imap-acct create postmaster@example.com -``` -结束 diff --git a/apps/maddy-mail/data.yml b/apps/maddy-mail/data.yml deleted file mode 100644 index 4749c12e..00000000 --- a/apps/maddy-mail/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Maddy Mail Server -tags: - - 邮件服务 -title: 可组合的多合一邮件服务器 -type: 邮件服务 -description: 可组合的多合一邮件服务器 -additionalProperties: - key: maddy-mail - name: Maddy Mail Server - tags: - - Email - shortDescZh: 可组合的多合一邮件服务器 - shortDescEn: Composable all-in-one mail server - type: tool - crossVersionUpdate: true - limit: 1 - recommend: 0 - website: https://maddy.email - github: https://github.com/foxcpp/maddy - document: https://maddy.email diff --git a/apps/maddy-mail/logo.png b/apps/maddy-mail/logo.png deleted file mode 100644 index 1e1313c0..00000000 Binary files a/apps/maddy-mail/logo.png and /dev/null differ diff --git a/apps/mailserver/13.3.1/conf/mailserver.env b/apps/mailserver/13.3.1/conf/mailserver.env deleted file mode 100644 index 1d619d76..00000000 --- a/apps/mailserver/13.3.1/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/apps/mailserver/13.3.1/data.yml b/apps/mailserver/13.3.1/data.yml deleted file mode 100755 index e29393a2..00000000 --- a/apps/mailserver/13.3.1/data.yml +++ /dev/null @@ -1,50 +0,0 @@ -additionalProperties: - formFields: - - default: mail.example.com - edit: true - envKey: MS_HOSTNAME - labelEn: domain - labelZh: 域名 - required: true - rule: paramExtUrl - type: text - - default: 25 - edit: true - envKey: PANEL_APP_PORT_SMTP - labelEn: Port - labelZh: SMTP 端口 - required: true - rule: paramPort - type: number - - default: 143 - edit: true - envKey: PANEL_APP_PORT_IMAP4_143 - labelEn: Port - labelZh: IMAP4 端口 - required: true - rule: paramPort - type: number - - default: 465 - edit: true - envKey: PANEL_APP_PORT_ESMTP_465 - labelEn: Port - labelZh: ESMTP 端口 - required: true - rule: paramPort - type: number - - default: 587 - edit: true - envKey: PANEL_APP_PORT_ESMTP_587 - labelEn: Port - labelZh: ESMTP 端口 - required: true - rule: paramPort - type: number - - default: 993 - edit: true - envKey: PANEL_APP_PORT_IMAP4_993 - labelEn: Port - labelZh: IMAP4 端口 - required: true - rule: paramPort - type: number diff --git a/apps/mailserver/13.3.1/docker-compose.yml b/apps/mailserver/13.3.1/docker-compose.yml deleted file mode 100644 index 9cc33b48..00000000 --- a/apps/mailserver/13.3.1/docker-compose.yml +++ /dev/null @@ -1,32 +0,0 @@ -version: '3' -services: - mailserver: - image: ghcr.io/docker-mailserver/docker-mailserver:13.3.1 - 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/apps/mailserver/README.md b/apps/mailserver/README.md deleted file mode 100644 index 5fb2dc39..00000000 --- a/apps/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/apps/mailserver/data.yml b/apps/mailserver/data.yml deleted file mode 100755 index dbd22e2c..00000000 --- a/apps/mailserver/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Mailserver -tags: - - 邮件服务 -title: 全栈但简单的容器化邮件服务器 -type: 邮件服务 -description: 全栈但简单的容器化邮件服务器 -additionalProperties: - key: mailserver - name: Mailserver - tags: - - Email - shortDescZh: 全栈但简单的容器化邮件服务器 - shortDescEn: Fullstack but simple containerized mail server - type: tool - 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/ diff --git a/apps/mailserver/logo.png b/apps/mailserver/logo.png deleted file mode 100644 index 26d65772..00000000 Binary files a/apps/mailserver/logo.png and /dev/null differ diff --git a/apps/mariadb/10.11.6/conf/my.cnf b/apps/mariadb/10.11.6/conf/my.cnf deleted file mode 100644 index 2debec9b..00000000 --- a/apps/mariadb/10.11.6/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/apps/mariadb/10.11.6/data.yml b/apps/mariadb/10.11.6/data.yml deleted file mode 100755 index d5cf9f9a..00000000 --- a/apps/mariadb/10.11.6/data.yml +++ /dev/null @@ -1,18 +0,0 @@ -additionalProperties: - formFields: - - default: mariadb - envKey: PANEL_DB_ROOT_PASSWORD - labelEn: Root Password - labelZh: root用户密码 - random: true - required: true - rule: paramComplexity - type: password - - default: 3306 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/apps/mariadb/10.11.6/docker-compose.yml b/apps/mariadb/10.11.6/docker-compose.yml deleted file mode 100644 index d8fa2fe7..00000000 --- a/apps/mariadb/10.11.6/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -version: '3' -services: - mariadb: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - image: "mariadb:10.11.6" - 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/apps/mariadb/README.md b/apps/mariadb/README.md deleted file mode 100644 index c1941e35..00000000 --- a/apps/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/apps/mariadb/data.yml b/apps/mariadb/data.yml deleted file mode 100755 index 12961096..00000000 --- a/apps/mariadb/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: MariaDB -tags: - - 数据库 -title: 著名的 MySQL 分支版本 -type: 数据库 -description: 著名的 MySQL 分支版本 -additionalProperties: - key: mariadb - name: MariaDB - tags: - - Database - shortDescZh: 著名的 MySQL 分支版本 - shortDescEn: The open source relational database - type: runtime - crossVersionUpdate: false - limit: 0 - recommend: 0 - website: https://mariadb.org/ - github: https://github.com/MariaDB/server/ - document: https://mariadb.org/documentation/ diff --git a/apps/mariadb/logo.png b/apps/mariadb/logo.png deleted file mode 100644 index 59bd1256..00000000 Binary files a/apps/mariadb/logo.png and /dev/null differ diff --git a/apps/mblog/1.1.0/data.yml b/apps/mblog/1.1.0/data.yml deleted file mode 100644 index 51066820..00000000 --- a/apps/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/apps/mblog/1.1.0/docker-compose.yml b/apps/mblog/1.1.0/docker-compose.yml deleted file mode 100644 index 42fe80c7..00000000 --- a/apps/mblog/1.1.0/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -version: '3' -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/apps/mblog/README.md b/apps/mblog/README.md deleted file mode 100644 index c285757d..00000000 --- a/apps/mblog/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# 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 字体/图标 \ No newline at end of file diff --git a/apps/mblog/data.yml b/apps/mblog/data.yml deleted file mode 100644 index 31e0bbc4..00000000 --- a/apps/mblog/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: mBlog -tags: - - 建站 -title: 开源自部署的个人微博 -type: 建站 -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 diff --git a/apps/mblog/logo.png b/apps/mblog/logo.png deleted file mode 100644 index 248e0429..00000000 Binary files a/apps/mblog/logo.png and /dev/null differ diff --git a/apps/mcsmanager-daemon/3.4.0/data.yml b/apps/mcsmanager-daemon/3.4.0/data.yml deleted file mode 100644 index e8284d1d..00000000 --- a/apps/mcsmanager-daemon/3.4.0/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/apps/mcsmanager-daemon/3.4.0/docker-compose.yml b/apps/mcsmanager-daemon/3.4.0/docker-compose.yml deleted file mode 100644 index ee46a721..00000000 --- a/apps/mcsmanager-daemon/3.4.0/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -version: '3' -services: - mcsm-daemon: - image: alisaqaq/mcsmanager-daemon:3.4.0 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:24444" - volumes: - - ./data:/opt/mcsmanager/daemon/data - - /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/apps/mcsmanager-daemon/README.md b/apps/mcsmanager-daemon/README.md deleted file mode 100644 index a794a1af..00000000 --- a/apps/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/apps/mcsmanager-daemon/data.yml b/apps/mcsmanager-daemon/data.yml deleted file mode 100644 index d06aac4b..00000000 --- a/apps/mcsmanager-daemon/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: MCSManager Daemon -tags: - - 休闲游戏 -title: 支持大部分游戏服务端和控制台程序的管理面板(后端) -type: 休闲游戏 -description: 支持大部分游戏服务端和控制台程序的管理面板(后端) -additionalProperties: - key: mcsmanager-daemon - name: MCSManager Daemon - tags: - - Game - shortDescZh: 支持大部分游戏服务端和控制台程序的管理面板(后端) - shortDescEn: Distributed, Docker-supported, Multilingual, and Lightweight control panel for Minecraft server and more (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/ diff --git a/apps/mcsmanager-daemon/logo.png b/apps/mcsmanager-daemon/logo.png deleted file mode 100644 index 948029be..00000000 Binary files a/apps/mcsmanager-daemon/logo.png and /dev/null differ diff --git a/apps/mcsmanager-web/9.9.0/data.yml b/apps/mcsmanager-web/9.9.0/data.yml deleted file mode 100644 index a9c44548..00000000 --- a/apps/mcsmanager-web/9.9.0/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/apps/mcsmanager-web/9.9.0/docker-compose.yml b/apps/mcsmanager-web/9.9.0/docker-compose.yml deleted file mode 100644 index e1d997d6..00000000 --- a/apps/mcsmanager-web/9.9.0/docker-compose.yml +++ /dev/null @@ -1,17 +0,0 @@ -version: '3' -services: - mcsm-web: - image: alisaqaq/mcsmanager-web:9.9.0 - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:23333" - volumes: - - ./data:/opt/mcsmanager/web/data - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/apps/mcsmanager-web/README.md b/apps/mcsmanager-web/README.md deleted file mode 100644 index a794a1af..00000000 --- a/apps/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/apps/mcsmanager-web/data.yml b/apps/mcsmanager-web/data.yml deleted file mode 100644 index ace333f6..00000000 --- a/apps/mcsmanager-web/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: MCSManager Web -tags: - - 休闲游戏 -title: 支持大部分游戏服务端和控制台程序的管理面板(前端) -type: 休闲游戏 -description: 支持大部分游戏服务端和控制台程序的管理面板(前端) -additionalProperties: - key: mcsmanager-web - name: MCSManager Web - tags: - - Game - shortDescZh: 支持大部分游戏服务端和控制台程序的管理面板(前端) - shortDescEn: Distributed, Docker-supported, Multilingual, and Lightweight control panel for Minecraft server and more (webui) - 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/ diff --git a/apps/mcsmanager-web/logo.png b/apps/mcsmanager-web/logo.png deleted file mode 100644 index 948029be..00000000 Binary files a/apps/mcsmanager-web/logo.png and /dev/null differ diff --git a/apps/meilisearch/1.6.0/config/config.toml b/apps/meilisearch/1.6.0/config/config.toml deleted file mode 100644 index e3a5e8f8..00000000 --- a/apps/meilisearch/1.6.0/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/apps/meilisearch/1.6.0/data.yml b/apps/meilisearch/1.6.0/data.yml deleted file mode 100644 index 4bf22d25..00000000 --- a/apps/meilisearch/1.6.0/data.yml +++ /dev/null @@ -1,30 +0,0 @@ -additionalProperties: - formFields: - - envKey: PANEL_APP_PORT_HTTP - default: 7700 - labelEn: Port - labelZh: 端口 - edit: true - required: true - rule: paramPort - type: number - - envKey: MEILI_MASTER_KEY - default: HmPEKZhcoANzRt3DTPhRQVRxPEVZw7m2TymKwKhs - labelEn: MasterKey - labelZh: 主密钥 - edit: true - required: true - random: true - rule: paramComplexity - type: password - - envKey: MEILI_NO_ANALYTICS - default: '' - labelEn: Meilisearch's built-in telemetry - labelZh: Meilisearch 的内置遥测 - edit: true - type: select - values: - - label: 开启 - value: '' - - label: 关闭 - value: --no-analytics \ No newline at end of file diff --git a/apps/meilisearch/1.6.0/docker-compose.yml b/apps/meilisearch/1.6.0/docker-compose.yml deleted file mode 100644 index a76b1bee..00000000 --- a/apps/meilisearch/1.6.0/docker-compose.yml +++ /dev/null @@ -1,27 +0,0 @@ -version: "3" -services: - meilisearch: - container_name: ${CONTAINER_NAME} - networks: - - 1panel-network - image: getmeili/meilisearch:v1.6.0 - command: - - /bin/sh - - -c - - /bin/meilisearch ${MEILI_NO_ANALYTICS} - labels: - createdBy: Apps - restart: always - 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 -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/apps/meilisearch/README.md b/apps/meilisearch/README.md deleted file mode 100644 index 79b498c2..00000000 --- a/apps/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/apps/meilisearch/data.yml b/apps/meilisearch/data.yml deleted file mode 100644 index 75513a53..00000000 --- a/apps/meilisearch/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: MeiliSearch -tags: - - 实用工具 -title: 开源、快如闪电且高度相关的搜索引擎 -type: 实用工具 -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: tool - crossVersionUpdate: false - limit: 0 - website: https://www.meilisearch.com - github: https://github.com/meilisearch/meilisearch - document: https://www.meilisearch.com/docs \ No newline at end of file diff --git a/apps/meilisearch/logo.png b/apps/meilisearch/logo.png deleted file mode 100644 index fc7bdbf3..00000000 Binary files a/apps/meilisearch/logo.png and /dev/null differ diff --git a/apps/memcached/1.6.22/data.yml b/apps/memcached/1.6.22/data.yml deleted file mode 100644 index 8cd0c7c5..00000000 --- a/apps/memcached/1.6.22/data.yml +++ /dev/null @@ -1,17 +0,0 @@ -additionalProperties: - formFields: - - default: 11211 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - - default: '64' - edit: true - envKey: MEM_CACHED - labelEn: Maximum memory usage(MB) - labelZh: 内存最大占用量(MB) - required: true - type: number diff --git a/apps/memcached/1.6.22/docker-compose.yml b/apps/memcached/1.6.22/docker-compose.yml deleted file mode 100644 index 776b4450..00000000 --- a/apps/memcached/1.6.22/docker-compose.yml +++ /dev/null @@ -1,16 +0,0 @@ -version: '3' -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/apps/memcached/README.md b/apps/memcached/README.md deleted file mode 100644 index bf976e0a..00000000 --- a/apps/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/apps/memcached/data.yml b/apps/memcached/data.yml deleted file mode 100644 index 7c99a2b2..00000000 --- a/apps/memcached/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: Memcached -tags: - - 实用工具 -title: 分布式的高速缓存系统 -type: 实用工具 -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 \ No newline at end of file diff --git a/apps/memcached/logo.png b/apps/memcached/logo.png deleted file mode 100644 index 271290b9..00000000 Binary files a/apps/memcached/logo.png and /dev/null differ diff --git a/apps/memos/0.19.0/0.15.2/data.yml b/apps/memos/0.19.0/0.15.2/data.yml deleted file mode 100755 index 93ac8576..00000000 --- a/apps/memos/0.19.0/0.15.2/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 5230 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/apps/memos/0.19.0/0.15.2/docker-compose.yml b/apps/memos/0.19.0/0.15.2/docker-compose.yml deleted file mode 100644 index 0b4f4e13..00000000 --- a/apps/memos/0.19.0/0.15.2/docker-compose.yml +++ /dev/null @@ -1,17 +0,0 @@ -version: '3' -services: - memos: - image: neosmemo/memos:0.19.0 - 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/apps/memos/0.19.0/data.yml b/apps/memos/0.19.0/data.yml deleted file mode 100755 index 93ac8576..00000000 --- a/apps/memos/0.19.0/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 5230 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/apps/memos/0.19.0/docker-compose.yml b/apps/memos/0.19.0/docker-compose.yml deleted file mode 100644 index 0b4f4e13..00000000 --- a/apps/memos/0.19.0/docker-compose.yml +++ /dev/null @@ -1,17 +0,0 @@ -version: '3' -services: - memos: - image: neosmemo/memos:0.19.0 - 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/apps/memos/README.md b/apps/memos/README.md deleted file mode 100644 index b1d0c7df..00000000 --- a/apps/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/apps/memos/data.yml b/apps/memos/data.yml deleted file mode 100755 index 2eb70b71..00000000 --- a/apps/memos/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Memos -tags: - - 实用工具 -title: 轻量级、自托管的备忘录中心 -type: 实用工具 -description: 轻量级、自托管的备忘录中心 -additionalProperties: - key: memos - name: Memos - tags: - - Tool - shortDescZh: 轻量级、自托管的备忘录中心 - shortDescEn: A lightweight, self-hosted memo hub - type: tool - crossVersionUpdate: false - limit: 0 - recommend: 0 - website: https://usememos.com/ - github: https://github.com/usememos/memos - document: https://usememos.com/docs diff --git a/apps/memos/logo.png b/apps/memos/logo.png deleted file mode 100644 index 05d73a3f..00000000 Binary files a/apps/memos/logo.png and /dev/null differ diff --git a/apps/metabase/0.48.3/data.yml b/apps/metabase/0.48.3/data.yml deleted file mode 100755 index 758ada96..00000000 --- a/apps/metabase/0.48.3/data.yml +++ /dev/null @@ -1,40 +0,0 @@ -additionalProperties: - formFields: - - default: "" - envKey: PANEL_DB_HOST - key: mysql - labelEn: Database Service - labelZh: 数据库服务 - required: true - type: service - - default: metabase - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库名 - random: true - required: true - rule: paramCommon - type: text - - default: metabase - envKey: PANEL_DB_USER - labelEn: User - labelZh: 数据库用户 - random: true - required: true - rule: paramCommon - type: text - - default: metabase - envKey: PANEL_DB_USER_PASSWORD - labelEn: Password - labelZh: 数据库用户密码 - random: true - required: true - rule: paramComplexity - type: password - - default: 3000 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 应用端口 - required: true - rule: paramPort - type: number diff --git a/apps/metabase/0.48.3/docker-compose.yml b/apps/metabase/0.48.3/docker-compose.yml deleted file mode 100644 index dac8584e..00000000 --- a/apps/metabase/0.48.3/docker-compose.yml +++ /dev/null @@ -1,30 +0,0 @@ -version: '3' -services: - metabase: - image: metabase/metabase:v0.48.3 - 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/apps/metabase/README.md b/apps/metabase/README.md deleted file mode 100644 index 57004f6a..00000000 --- a/apps/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/apps/metabase/data.yml b/apps/metabase/data.yml deleted file mode 100755 index cf4893e4..00000000 --- a/apps/metabase/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Metabase -tags: - - BI -title: 一款开源的数据分析和可视化工具 -type: BI -description: 一款开源的数据分析和可视化工具 -additionalProperties: - key: metabase - name: Metabase - tags: - - BI - shortDescZh: 一款开源的数据分析和可视化工具 - shortDescEn: An open source data analysis and visualization tool - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://www.metabase.com - github: https://github.com/metabase/metabase - document: https://www.metabase.com/docs \ No newline at end of file diff --git a/apps/metabase/logo.png b/apps/metabase/logo.png deleted file mode 100644 index 75ecdbd3..00000000 Binary files a/apps/metabase/logo.png and /dev/null differ diff --git a/apps/minio/2024-01-05/data.yml b/apps/minio/2024-01-05/data.yml deleted file mode 100755 index e22925f5..00000000 --- a/apps/minio/2024-01-05/data.yml +++ /dev/null @@ -1,32 +0,0 @@ -additionalProperties: - formFields: - - default: minio - envKey: PANEL_MINIO_ROOT_USER - labelEn: User - labelZh: 用户 - random: true - required: true - rule: paramCommon - type: text - - default: minio - envKey: PANEL_MINIO_ROOT_PASSWORD - labelEn: Password - labelZh: 密码 - random: true - required: true - rule: paramComplexity - type: password - - default: 9000 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - - default: 9001 - envKey: PANEL_APP_PORT_API - labelEn: Port - labelZh: API 端口 - required: true - rule: paramPort - type: number diff --git a/apps/minio/2024-01-05/docker-compose.yml b/apps/minio/2024-01-05/docker-compose.yml deleted file mode 100644 index ae64e90a..00000000 --- a/apps/minio/2024-01-05/docker-compose.yml +++ /dev/null @@ -1,27 +0,0 @@ -version: '3' -services: - minio: - image: minio/minio:RELEASE.2024-01-05T22-17-24Z - container_name: ${CONTAINER_NAME} - ports: - - ${PANEL_APP_PORT_HTTP}:9000 - - ${PANEL_APP_PORT_API}:9001 - restart: always - command: server /data --console-address :9000 --address :9001 - environment: - MINIO_ROOT_USER: ${PANEL_MINIO_ROOT_USER} - MINIO_ROOT_PASSWORD: ${PANEL_MINIO_ROOT_PASSWORD} - logging: - options: - max-size: "5M" - max-file: "10" - driver: json-file - networks: - - 1panel-network - volumes: - - ./data:/data - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/apps/minio/README.md b/apps/minio/README.md deleted file mode 100644 index 982729d6..00000000 --- a/apps/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/apps/minio/data.yml b/apps/minio/data.yml deleted file mode 100755 index 553cc1e7..00000000 --- a/apps/minio/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: MinIO -tags: - - 中间件 -title: 开源的对象存储服务器 -type: 中间件 -description: 开源的对象存储服务器 -additionalProperties: - key: minio - name: MinIO - tags: - - Middleware - shortDescZh: 开源的对象存储服务器 - shortDescEn: Open source object storage server - type: tool - 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 diff --git a/apps/minio/logo.png b/apps/minio/logo.png deleted file mode 100644 index 72c994c6..00000000 Binary files a/apps/minio/logo.png and /dev/null differ diff --git a/apps/mkdocs-material/9.5.6/data.yml b/apps/mkdocs-material/9.5.6/data.yml deleted file mode 100644 index e2bad64f..00000000 --- a/apps/mkdocs-material/9.5.6/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 8111 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/apps/mkdocs-material/9.5.6/data/docs/index.md b/apps/mkdocs-material/9.5.6/data/docs/index.md deleted file mode 100644 index 6cd327e8..00000000 --- a/apps/mkdocs-material/9.5.6/data/docs/index.md +++ /dev/null @@ -1,5 +0,0 @@ -# Hello 1Panel - -你好,1Panel! - -这是 MKDOCS 的默认页,你可以从这里开始。 \ No newline at end of file diff --git a/apps/mkdocs-material/9.5.6/data/mkdocs.yml b/apps/mkdocs-material/9.5.6/data/mkdocs.yml deleted file mode 100644 index bb0200ab..00000000 --- a/apps/mkdocs-material/9.5.6/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/apps/mkdocs-material/9.5.6/docker-compose.yml b/apps/mkdocs-material/9.5.6/docker-compose.yml deleted file mode 100644 index 658659ea..00000000 --- a/apps/mkdocs-material/9.5.6/docker-compose.yml +++ /dev/null @@ -1,17 +0,0 @@ -version: '3' -services: - mkdocs-material: - image: squidfunk/mkdocs-material:9.5.6 - 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/apps/mkdocs-material/README.md b/apps/mkdocs-material/README.md deleted file mode 100644 index 3bfe98e5..00000000 --- a/apps/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/apps/mkdocs-material/data.yml b/apps/mkdocs-material/data.yml deleted file mode 100644 index 2de75c72..00000000 --- a/apps/mkdocs-material/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Material for MkDocs -tags: - - 实用工具 -title: Markdown 文件托管平台 -type: 实用工具 -description: Markdown 文件托管平台 -additionalProperties: - key: mkdocs-material - name: Material for MkDocs - tags: - - Tool - shortDescZh: Markdown 文件托管平台 - shortDescEn: A powerful documentation framework on top of MkDocs - type: tool - 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/ \ No newline at end of file diff --git a/apps/mkdocs-material/logo.png b/apps/mkdocs-material/logo.png deleted file mode 100644 index 8eec33af..00000000 Binary files a/apps/mkdocs-material/logo.png and /dev/null differ diff --git a/apps/mongodb/7.0.5/data.yml b/apps/mongodb/7.0.5/data.yml deleted file mode 100755 index 319227fc..00000000 --- a/apps/mongodb/7.0.5/data.yml +++ /dev/null @@ -1,25 +0,0 @@ -additionalProperties: - formFields: - - default: mongo - envKey: PANEL_DB_ROOT_USER - labelEn: Username - labelZh: 用户名 - random: true - required: true - rule: paramCommon - type: text - - default: mongo - envKey: PANEL_DB_ROOT_PASSWORD - labelEn: Password - labelZh: 用户密码 - random: true - required: true - rule: paramComplexity - type: password - - default: 27017 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/apps/mongodb/7.0.5/docker-compose.yml b/apps/mongodb/7.0.5/docker-compose.yml deleted file mode 100644 index d5d09b77..00000000 --- a/apps/mongodb/7.0.5/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -version: '3' -services: - mongodb: - container_name: ${CONTAINER_NAME} - image: mongo:7.0.5 - 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/apps/mongodb/README.md b/apps/mongodb/README.md deleted file mode 100644 index 0b98eac7..00000000 --- a/apps/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/apps/mongodb/data.yml b/apps/mongodb/data.yml deleted file mode 100755 index 74400d4b..00000000 --- a/apps/mongodb/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: MongoDB -tags: - - 数据库 -title: 开源文档数据库 -type: 数据库 -description: 开源文档数据库 -additionalProperties: - key: mongodb - name: MongoDB - tags: - - Database - shortDescZh: MongoDB 开源文档数据库 - shortDescEn: Fractional file storage database - 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/ diff --git a/apps/mongodb/logo.png b/apps/mongodb/logo.png deleted file mode 100644 index 6fc7a99d..00000000 Binary files a/apps/mongodb/logo.png and /dev/null differ diff --git a/apps/mysql/5.6.51/conf/my.cnf b/apps/mysql/5.6.51/conf/my.cnf deleted file mode 100644 index 94804f84..00000000 --- a/apps/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/apps/mysql/5.6.51/data.yml b/apps/mysql/5.6.51/data.yml deleted file mode 100755 index e71c6a38..00000000 --- a/apps/mysql/5.6.51/data.yml +++ /dev/null @@ -1,17 +0,0 @@ -additionalProperties: - formFields: - - default: mysql - envKey: PANEL_DB_ROOT_PASSWORD - labelEn: Root Password - labelZh: root用户密码 - random: true - required: true - rule: paramComplexity - type: password - - default: 3306 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/apps/mysql/5.6.51/docker-compose.yml b/apps/mysql/5.6.51/docker-compose.yml deleted file mode 100644 index 4a78d9eb..00000000 --- a/apps/mysql/5.6.51/docker-compose.yml +++ /dev/null @@ -1,27 +0,0 @@ -version: '3' - -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/apps/mysql/5.7.44/conf/my.cnf b/apps/mysql/5.7.44/conf/my.cnf deleted file mode 100644 index 9a6aa6f9..00000000 --- a/apps/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/apps/mysql/5.7.44/data.yml b/apps/mysql/5.7.44/data.yml deleted file mode 100755 index e71c6a38..00000000 --- a/apps/mysql/5.7.44/data.yml +++ /dev/null @@ -1,17 +0,0 @@ -additionalProperties: - formFields: - - default: mysql - envKey: PANEL_DB_ROOT_PASSWORD - labelEn: Root Password - labelZh: root用户密码 - random: true - required: true - rule: paramComplexity - type: password - - default: 3306 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/apps/mysql/5.7.44/docker-compose.yml b/apps/mysql/5.7.44/docker-compose.yml deleted file mode 100644 index 052adb43..00000000 --- a/apps/mysql/5.7.44/docker-compose.yml +++ /dev/null @@ -1,29 +0,0 @@ -version: '3' - -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/apps/mysql/8.3.0/conf/my.cnf b/apps/mysql/8.3.0/conf/my.cnf deleted file mode 100644 index 6877bbfc..00000000 --- a/apps/mysql/8.3.0/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/apps/mysql/8.3.0/data.yml b/apps/mysql/8.3.0/data.yml deleted file mode 100755 index e71c6a38..00000000 --- a/apps/mysql/8.3.0/data.yml +++ /dev/null @@ -1,17 +0,0 @@ -additionalProperties: - formFields: - - default: mysql - envKey: PANEL_DB_ROOT_PASSWORD - labelEn: Root Password - labelZh: root用户密码 - random: true - required: true - rule: paramComplexity - type: password - - default: 3306 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/apps/mysql/8.3.0/docker-compose.yml b/apps/mysql/8.3.0/docker-compose.yml deleted file mode 100644 index 6be34163..00000000 --- a/apps/mysql/8.3.0/docker-compose.yml +++ /dev/null @@ -1,26 +0,0 @@ -version: '3' - -services: - mysql: - image: mysql:8.3.0 - 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/apps/mysql/README.md b/apps/mysql/README.md deleted file mode 100644 index a9088d51..00000000 --- a/apps/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/apps/mysql/data.yml b/apps/mysql/data.yml deleted file mode 100755 index 4a8c4af5..00000000 --- a/apps/mysql/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: MySQL -tags: - - 数据库 -title: MySQL 开源关系型数据库 -type: 数据库 -description: MySQL 开源关系型数据库 -additionalProperties: - key: mysql - name: MySQL - tags: - - Database - shortDescZh: MySQL 开源关系型数据库 - shortDescEn: Open source relational database management system - type: runtime - crossVersionUpdate: false - limit: 0 - recommend: 2 - website: https://www.mysql.com - github: https://github.com/mysql/mysql-server - document: https://dev.mysql.com/doc/ diff --git a/apps/mysql/logo.png b/apps/mysql/logo.png deleted file mode 100644 index 269640f5..00000000 Binary files a/apps/mysql/logo.png and /dev/null differ diff --git a/apps/navidrome/README.md b/apps/navidrome/README.md deleted file mode 100644 index 6adf2f26..00000000 --- a/apps/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/apps/navidrome/data.yml b/apps/navidrome/data.yml deleted file mode 100644 index 51d8ac10..00000000 --- a/apps/navidrome/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Navidrome -tags: - - 多媒体 -title: 基于 Web 的开源音乐收藏服务器和流媒体 -type: 多媒体 -description: 基于 Web 的开源音乐收藏服务器和流媒体 -additionalProperties: - key: navidrome - name: Navidrome - tags: - - Media - shortDescZh: 基于 Web 的开源音乐收藏服务器和流媒体 - shortDescEn: An open source web-based music collection server and streamer - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://www.navidrome.org - github: https://github.com/navidrome/navidrome - document: https://www.navidrome.org/docs \ No newline at end of file diff --git a/apps/navidrome/logo.png b/apps/navidrome/logo.png deleted file mode 100644 index 7abd45d4..00000000 Binary files a/apps/navidrome/logo.png and /dev/null differ diff --git a/apps/navidrome/pr-2295/data.yml b/apps/navidrome/pr-2295/data.yml deleted file mode 100644 index 2c006c67..00000000 --- a/apps/navidrome/pr-2295/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 40108 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: HTTP Port - labelZh: HTTP端口 - required: true - rule: paramPort - type: number diff --git a/apps/navidrome/pr-2295/data/.gitkeep b/apps/navidrome/pr-2295/data/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/navidrome/pr-2295/data/data/.gitkeep b/apps/navidrome/pr-2295/data/data/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/navidrome/pr-2295/data/music/.gitkeep b/apps/navidrome/pr-2295/data/music/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/navidrome/pr-2295/docker-compose.yml b/apps/navidrome/pr-2295/docker-compose.yml deleted file mode 100644 index 9a5bd40d..00000000 --- a/apps/navidrome/pr-2295/docker-compose.yml +++ /dev/null @@ -1,25 +0,0 @@ -version: '3' -services: - navidrome: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:4533 - volumes: - - ./data/data:/data - - ./data/music:/music:ro - environment: - ND_SCANSCHEDULE: 1h - ND_LOGLEVEL: info - ND_SESSIONTIMEOUT: 24h - ND_BASEURL: "" - user: 1000:1000 - image: deluan/navidrome:pr-2295 - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true diff --git a/apps/navidrome/pr-2295/scripts/init.sh b/apps/navidrome/pr-2295/scripts/init.sh deleted file mode 100644 index 4e811c86..00000000 --- a/apps/navidrome/pr-2295/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/apps/nextcloud/28.0.1/data.yml b/apps/nextcloud/28.0.1/data.yml deleted file mode 100644 index 54c1c705..00000000 --- a/apps/nextcloud/28.0.1/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -additionalProperties: - formFields: - - default: 40069 - edit: true - envKey: PANEL_APP_PORT_HTTPS - labelEn: HTTPS Port - labelZh: HTTPS 端口 - 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/apps/nextcloud/28.0.1/docker-compose.yml b/apps/nextcloud/28.0.1/docker-compose.yml deleted file mode 100644 index dc07104e..00000000 --- a/apps/nextcloud/28.0.1/docker-compose.yml +++ /dev/null @@ -1,22 +0,0 @@ -version: '3' -services: - nextcloud: - image: linuxserver/nextcloud:28.0.1 - 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/apps/nextcloud/README.md b/apps/nextcloud/README.md deleted file mode 100644 index bd3b9182..00000000 --- a/apps/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/apps/nextcloud/data.yml b/apps/nextcloud/data.yml deleted file mode 100644 index 772fea13..00000000 --- a/apps/nextcloud/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Nextcloud -tags: - - 云存储 -title: Nextcloud 服务器,所有数据的安全家园 -type: 云存储 -description: Nextcloud 服务器,所有数据的安全家园 -additionalProperties: - key: nextcloud - name: Nextcloud - tags: - - Storage - shortDescZh: Nextcloud 服务器,所有数据的安全家园 - shortDescEn: Nextcloud server, a safe home for all your data - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://nextcloud.com/ - github: https://github.com/nextcloud/server - document: https://docs.nextcloud.com/ diff --git a/apps/nextcloud/logo.png b/apps/nextcloud/logo.png deleted file mode 100644 index 8d816884..00000000 Binary files a/apps/nextcloud/logo.png and /dev/null differ diff --git a/apps/nexus/3.64.0/data.yml b/apps/nexus/3.64.0/data.yml deleted file mode 100755 index 6d6bd55c..00000000 --- a/apps/nexus/3.64.0/data.yml +++ /dev/null @@ -1,9 +0,0 @@ -additionalProperties: - formFields: - - default: 8081 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/apps/nexus/3.64.0/data/.gitkeep b/apps/nexus/3.64.0/data/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/nexus/3.64.0/docker-compose.yml b/apps/nexus/3.64.0/docker-compose.yml deleted file mode 100644 index ef601815..00000000 --- a/apps/nexus/3.64.0/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -version: '3' -services: - nexus: - image: sonatype/nexus3:3.64.0 - 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/apps/nexus/3.64.0/scripts/init.sh b/apps/nexus/3.64.0/scripts/init.sh deleted file mode 100644 index 669f11a0..00000000 --- a/apps/nexus/3.64.0/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/apps/nexus/README.md b/apps/nexus/README.md deleted file mode 100644 index b872b0f3..00000000 --- a/apps/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/apps/nexus/data.yml b/apps/nexus/data.yml deleted file mode 100755 index 43c5fabb..00000000 --- a/apps/nexus/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Nexus Repository -tags: - - DevOps -title: 开源的软件制品库 -type: DevOps -description: 开源的软件制品库 -additionalProperties: - key: nexus - name: Nexus Repository - tags: - - DevOps - shortDescZh: 开源的软件制品库 - shortDescEn: An open source repository for build artifacts - type: tool - 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 diff --git a/apps/nexus/logo.png b/apps/nexus/logo.png deleted file mode 100644 index e40d6f80..00000000 Binary files a/apps/nexus/logo.png and /dev/null differ diff --git a/apps/nginx-proxy-manager/2.11.1/data.yml b/apps/nginx-proxy-manager/2.11.1/data.yml deleted file mode 100644 index d70e3339..00000000 --- a/apps/nginx-proxy-manager/2.11.1/data.yml +++ /dev/null @@ -1,26 +0,0 @@ -additionalProperties: - formFields: - - default: 30080 - edit: true - envKey: PANEL_APP_PORT_HTTP1 - labelEn: HTTP Port - labelZh: HTTP端口 - required: true - rule: paramPort - type: number - - default: 30081 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Console Port - labelZh: 控制台端口 - required: true - rule: paramPort - type: number - - default: 30443 - edit: true - envKey: PANEL_APP_PORT_HTTP2 - labelEn: HTTPS Port - labelZh: HTTPS端口 - required: true - rule: paramPort - type: number diff --git a/apps/nginx-proxy-manager/2.11.1/docker-compose.yml b/apps/nginx-proxy-manager/2.11.1/docker-compose.yml deleted file mode 100644 index dc87193f..00000000 --- a/apps/nginx-proxy-manager/2.11.1/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -version: '3' -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.11.1 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/apps/nginx-proxy-manager/README.md b/apps/nginx-proxy-manager/README.md deleted file mode 100644 index 30a629e4..00000000 --- a/apps/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/apps/nginx-proxy-manager/data.yml b/apps/nginx-proxy-manager/data.yml deleted file mode 100644 index 6a598afd..00000000 --- a/apps/nginx-proxy-manager/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Nginx Proxy Manager -tags: - - 实用工具 -title: 使用简单、强大的界面管理 Nginx 代理主机 -type: 实用工具 -description: 使用简单、强大的界面管理 Nginx 代理主机 -additionalProperties: - key: nginx-proxy-manager - name: Nginx Proxy Manager - tags: - - Tool - shortDescZh: 使用简单、强大的界面管理 Nginx 代理主机 - shortDescEn: managing Nginx proxy hosts with a simple, powerful interface - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://nginxproxymanager.com/ - github: https://github.com/NginxProxyManager/nginx-proxy-manager - document: https://nginxproxymanager.com/guide/ diff --git a/apps/nginx-proxy-manager/logo.png b/apps/nginx-proxy-manager/logo.png deleted file mode 100644 index 31ffc266..00000000 Binary files a/apps/nginx-proxy-manager/logo.png and /dev/null differ diff --git a/apps/node/12.22.12/data.yml b/apps/node/12.22.12/data.yml deleted file mode 100644 index fcc6ed69..00000000 --- a/apps/node/12.22.12/data.yml +++ /dev/null @@ -1 +0,0 @@ -additionalProperties: \ No newline at end of file diff --git a/apps/node/12.22.12/docker-compose.yml b/apps/node/12.22.12/docker-compose.yml deleted file mode 100644 index 3a2102f2..00000000 --- a/apps/node/12.22.12/docker-compose.yml +++ /dev/null @@ -1,24 +0,0 @@ -version: '3' -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}:${NODE_APP_PORT} - healthcheck: - test: ["CMD-SHELL", "curl -f http://localhost:${NODE_APP_PORT} || exit 1"] - interval: 30s - timeout: 5s - retries: 20 - restart: always -networks: - 1panel-network: - external: true diff --git a/apps/node/12.22.12/run.sh b/apps/node/12.22.12/run.sh deleted file mode 100644 index e7228d42..00000000 --- a/apps/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 - $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/apps/node/14.21.3/data.yml b/apps/node/14.21.3/data.yml deleted file mode 100644 index fcc6ed69..00000000 --- a/apps/node/14.21.3/data.yml +++ /dev/null @@ -1 +0,0 @@ -additionalProperties: \ No newline at end of file diff --git a/apps/node/14.21.3/docker-compose.yml b/apps/node/14.21.3/docker-compose.yml deleted file mode 100644 index 3a2102f2..00000000 --- a/apps/node/14.21.3/docker-compose.yml +++ /dev/null @@ -1,24 +0,0 @@ -version: '3' -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}:${NODE_APP_PORT} - healthcheck: - test: ["CMD-SHELL", "curl -f http://localhost:${NODE_APP_PORT} || exit 1"] - interval: 30s - timeout: 5s - retries: 20 - restart: always -networks: - 1panel-network: - external: true diff --git a/apps/node/14.21.3/run.sh b/apps/node/14.21.3/run.sh deleted file mode 100644 index 3187406d..00000000 --- a/apps/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/apps/node/16.20.2/data.yml b/apps/node/16.20.2/data.yml deleted file mode 100644 index fcc6ed69..00000000 --- a/apps/node/16.20.2/data.yml +++ /dev/null @@ -1 +0,0 @@ -additionalProperties: \ No newline at end of file diff --git a/apps/node/16.20.2/docker-compose.yml b/apps/node/16.20.2/docker-compose.yml deleted file mode 100644 index 3a2102f2..00000000 --- a/apps/node/16.20.2/docker-compose.yml +++ /dev/null @@ -1,24 +0,0 @@ -version: '3' -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}:${NODE_APP_PORT} - healthcheck: - test: ["CMD-SHELL", "curl -f http://localhost:${NODE_APP_PORT} || exit 1"] - interval: 30s - timeout: 5s - retries: 20 - restart: always -networks: - 1panel-network: - external: true diff --git a/apps/node/16.20.2/run.sh b/apps/node/16.20.2/run.sh deleted file mode 100644 index 3187406d..00000000 --- a/apps/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/apps/node/18.18.0/data.yml b/apps/node/18.18.0/data.yml deleted file mode 100644 index fcc6ed69..00000000 --- a/apps/node/18.18.0/data.yml +++ /dev/null @@ -1 +0,0 @@ -additionalProperties: \ No newline at end of file diff --git a/apps/node/18.18.0/docker-compose.yml b/apps/node/18.18.0/docker-compose.yml deleted file mode 100644 index 3a2102f2..00000000 --- a/apps/node/18.18.0/docker-compose.yml +++ /dev/null @@ -1,24 +0,0 @@ -version: '3' -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}:${NODE_APP_PORT} - healthcheck: - test: ["CMD-SHELL", "curl -f http://localhost:${NODE_APP_PORT} || exit 1"] - interval: 30s - timeout: 5s - retries: 20 - restart: always -networks: - 1panel-network: - external: true diff --git a/apps/node/18.18.0/run.sh b/apps/node/18.18.0/run.sh deleted file mode 100644 index 3187406d..00000000 --- a/apps/node/18.18.0/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/apps/node/20.9.0/data.yml b/apps/node/20.9.0/data.yml deleted file mode 100644 index fcc6ed69..00000000 --- a/apps/node/20.9.0/data.yml +++ /dev/null @@ -1 +0,0 @@ -additionalProperties: \ No newline at end of file diff --git a/apps/node/20.9.0/docker-compose.yml b/apps/node/20.9.0/docker-compose.yml deleted file mode 100644 index 3a2102f2..00000000 --- a/apps/node/20.9.0/docker-compose.yml +++ /dev/null @@ -1,24 +0,0 @@ -version: '3' -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}:${NODE_APP_PORT} - healthcheck: - test: ["CMD-SHELL", "curl -f http://localhost:${NODE_APP_PORT} || exit 1"] - interval: 30s - timeout: 5s - retries: 20 - restart: always -networks: - 1panel-network: - external: true diff --git a/apps/node/20.9.0/run.sh b/apps/node/20.9.0/run.sh deleted file mode 100644 index e7228d42..00000000 --- a/apps/node/20.9.0/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 - $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/apps/node/21.1.0/data.yml b/apps/node/21.1.0/data.yml deleted file mode 100644 index fcc6ed69..00000000 --- a/apps/node/21.1.0/data.yml +++ /dev/null @@ -1 +0,0 @@ -additionalProperties: \ No newline at end of file diff --git a/apps/node/21.1.0/docker-compose.yml b/apps/node/21.1.0/docker-compose.yml deleted file mode 100644 index 3a2102f2..00000000 --- a/apps/node/21.1.0/docker-compose.yml +++ /dev/null @@ -1,24 +0,0 @@ -version: '3' -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}:${NODE_APP_PORT} - healthcheck: - test: ["CMD-SHELL", "curl -f http://localhost:${NODE_APP_PORT} || exit 1"] - interval: 30s - timeout: 5s - retries: 20 - restart: always -networks: - 1panel-network: - external: true diff --git a/apps/node/21.1.0/run.sh b/apps/node/21.1.0/run.sh deleted file mode 100644 index e7228d42..00000000 --- a/apps/node/21.1.0/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 - $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/apps/node/README.md b/apps/node/README.md deleted file mode 100644 index aa2e5dad..00000000 --- a/apps/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/apps/node/data.yml b/apps/node/data.yml deleted file mode 100644 index 39a8a2c8..00000000 --- a/apps/node/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: Node.js -tags: - - 运行环境 -title: Node.js 运行环境 -type: 运行环境 -description: Node.js 运行环境 -additionalProperties: - key: node - name: Node.js - tags: - - Runtime - shortDescZh: Node.js 运行环境 - shortDescEn: Node.js Runtime - type: node - crossVersionUpdate: false - limit: 0 - recommend: 101 - website: https://nodejs.org/en - github: https://github.com/nodejs diff --git a/apps/node/logo.png b/apps/node/logo.png deleted file mode 100644 index 10bbb7e5..00000000 Binary files a/apps/node/logo.png and /dev/null differ diff --git a/apps/one-api/0.5.11/data.yml b/apps/one-api/0.5.11/data.yml deleted file mode 100644 index 8e1f8ecb..00000000 --- a/apps/one-api/0.5.11/data.yml +++ /dev/null @@ -1,48 +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 - rule: paramComplexity - 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/apps/one-api/0.5.11/docker-compose.yml b/apps/one-api/0.5.11/docker-compose.yml deleted file mode 100644 index 685a8069..00000000 --- a/apps/one-api/0.5.11/docker-compose.yml +++ /dev/null @@ -1,25 +0,0 @@ -version: '3' -services: - one-api: - image: justsong/one-api:v0.5.11 - 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}:3306)/${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 \ No newline at end of file diff --git a/apps/one-api/README.md b/apps/one-api/README.md deleted file mode 100644 index 14958b1a..00000000 --- a/apps/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/apps/one-api/data.yml b/apps/one-api/data.yml deleted file mode 100644 index d9a2dd3a..00000000 --- a/apps/one-api/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: One API -tags: - - 实用工具 -title: OpenAI 接口管理 & 分发系统 -type: 实用工具 -description: OpenAI 接口管理 & 分发系统 -additionalProperties: - key: one-api - name: One API - tags: - - Tool - shortDescZh: 通过标准的 OpenAI API 格式访问所有的大模型,开箱即用 - shortDescEn: Access all LLM through the standard OpenAI API format, easy to deploy & use - type: tool - 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 diff --git a/apps/one-api/logo.png b/apps/one-api/logo.png deleted file mode 100644 index 0f237a22..00000000 Binary files a/apps/one-api/logo.png and /dev/null differ diff --git a/apps/openlitespeed/1.7.19-lsphp74/data.yml b/apps/openlitespeed/1.7.19-lsphp74/data.yml deleted file mode 100644 index d86a8c86..00000000 --- a/apps/openlitespeed/1.7.19-lsphp74/data.yml +++ /dev/null @@ -1,33 +0,0 @@ -additionalProperties: - formFields: - - default: 80 - edit: true - envKey: PANEL_APP_PORT_HTTP_80 - labelEn: HTTP Port - labelZh: HTTP端口 - required: true - rule: paramPort - type: number - - default: 443 - edit: true - envKey: PANEL_APP_PORT_HTTPS - labelEn: HTTPS Port - labelZh: HTTPS端口 - required: true - rule: paramPort - type: number - - default: 40113 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Console 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/apps/openlitespeed/1.7.19-lsphp74/data/bin/container/appinstallctl.sh b/apps/openlitespeed/1.7.19-lsphp74/data/bin/container/appinstallctl.sh deleted file mode 100644 index d79c63f1..00000000 --- a/apps/openlitespeed/1.7.19-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/apps/openlitespeed/1.7.19-lsphp74/data/bin/container/certhookctl.sh b/apps/openlitespeed/1.7.19-lsphp74/data/bin/container/certhookctl.sh deleted file mode 100644 index 18be0965..00000000 --- a/apps/openlitespeed/1.7.19-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/apps/openlitespeed/1.7.19-lsphp74/data/bin/container/domainctl.sh b/apps/openlitespeed/1.7.19-lsphp74/data/bin/container/domainctl.sh deleted file mode 100644 index 75539ef0..00000000 --- a/apps/openlitespeed/1.7.19-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/apps/openlitespeed/1.7.19-lsphp74/data/bin/container/owaspctl.sh b/apps/openlitespeed/1.7.19-lsphp74/data/bin/container/owaspctl.sh deleted file mode 100644 index 72fd8e59..00000000 --- a/apps/openlitespeed/1.7.19-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/apps/openlitespeed/1.7.19-lsphp74/data/bin/container/serialctl.sh b/apps/openlitespeed/1.7.19-lsphp74/data/bin/container/serialctl.sh deleted file mode 100644 index 42e312dc..00000000 --- a/apps/openlitespeed/1.7.19-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/apps/openlitespeed/1.7.19-lsphp74/data/sites/.gitignore b/apps/openlitespeed/1.7.19-lsphp74/data/sites/.gitignore deleted file mode 100644 index d6b7ef32..00000000 --- a/apps/openlitespeed/1.7.19-lsphp74/data/sites/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore diff --git a/apps/openlitespeed/1.7.19-lsphp74/docker-compose.yml b/apps/openlitespeed/1.7.19-lsphp74/docker-compose.yml deleted file mode 100644 index cd9d1849..00000000 --- a/apps/openlitespeed/1.7.19-lsphp74/docker-compose.yml +++ /dev/null @@ -1,30 +0,0 @@ -version: '3' -services: - litespeed: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - logging: - driver: none - 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.7.19-lsphp74 - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true diff --git a/apps/openlitespeed/1.7.19-lsphp81/data.yml b/apps/openlitespeed/1.7.19-lsphp81/data.yml deleted file mode 100644 index d86a8c86..00000000 --- a/apps/openlitespeed/1.7.19-lsphp81/data.yml +++ /dev/null @@ -1,33 +0,0 @@ -additionalProperties: - formFields: - - default: 80 - edit: true - envKey: PANEL_APP_PORT_HTTP_80 - labelEn: HTTP Port - labelZh: HTTP端口 - required: true - rule: paramPort - type: number - - default: 443 - edit: true - envKey: PANEL_APP_PORT_HTTPS - labelEn: HTTPS Port - labelZh: HTTPS端口 - required: true - rule: paramPort - type: number - - default: 40113 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Console 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/apps/openlitespeed/1.7.19-lsphp81/data/bin/container/appinstallctl.sh b/apps/openlitespeed/1.7.19-lsphp81/data/bin/container/appinstallctl.sh deleted file mode 100644 index d79c63f1..00000000 --- a/apps/openlitespeed/1.7.19-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/apps/openlitespeed/1.7.19-lsphp81/data/bin/container/certhookctl.sh b/apps/openlitespeed/1.7.19-lsphp81/data/bin/container/certhookctl.sh deleted file mode 100644 index 18be0965..00000000 --- a/apps/openlitespeed/1.7.19-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/apps/openlitespeed/1.7.19-lsphp81/data/bin/container/domainctl.sh b/apps/openlitespeed/1.7.19-lsphp81/data/bin/container/domainctl.sh deleted file mode 100644 index 75539ef0..00000000 --- a/apps/openlitespeed/1.7.19-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/apps/openlitespeed/1.7.19-lsphp81/data/bin/container/owaspctl.sh b/apps/openlitespeed/1.7.19-lsphp81/data/bin/container/owaspctl.sh deleted file mode 100644 index 72fd8e59..00000000 --- a/apps/openlitespeed/1.7.19-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/apps/openlitespeed/1.7.19-lsphp81/data/bin/container/serialctl.sh b/apps/openlitespeed/1.7.19-lsphp81/data/bin/container/serialctl.sh deleted file mode 100644 index 42e312dc..00000000 --- a/apps/openlitespeed/1.7.19-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/apps/openlitespeed/1.7.19-lsphp81/data/sites/.gitignore b/apps/openlitespeed/1.7.19-lsphp81/data/sites/.gitignore deleted file mode 100644 index d6b7ef32..00000000 --- a/apps/openlitespeed/1.7.19-lsphp81/data/sites/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore diff --git a/apps/openlitespeed/1.7.19-lsphp81/docker-compose.yml b/apps/openlitespeed/1.7.19-lsphp81/docker-compose.yml deleted file mode 100644 index bae06ba3..00000000 --- a/apps/openlitespeed/1.7.19-lsphp81/docker-compose.yml +++ /dev/null @@ -1,30 +0,0 @@ -version: '3' -services: - litespeed: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - logging: - driver: none - 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.7.19-lsphp81 - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true diff --git a/apps/openlitespeed/README.md b/apps/openlitespeed/README.md deleted file mode 100644 index 461c4d5b..00000000 --- a/apps/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/apps/openlitespeed/data.yml b/apps/openlitespeed/data.yml deleted file mode 100644 index ed471249..00000000 --- a/apps/openlitespeed/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: OpenLiteSpeed -tags: - - Web 服务器 -title: 一个高性能、轻量级、开源的 HTTP 服务器 -type: Web 服务器 -description: 一个高性能、轻量级、开源的 HTTP 服务器 -additionalProperties: - key: openlitespeed - name: OpenLiteSpeed - tags: - - Server - shortDescZh: 一个高性能、轻量级、开源的 HTTP 服务器 - shortDescEn: A high-performance, lightweight, open source HTTP server - type: runtime - crossVersionUpdate: true - limit: 1 - recommend: 0 - website: https://openlitespeed.org - github: https://github.com/litespeedtech/openlitespeed - document: https://openlitespeed.org/#install \ No newline at end of file diff --git a/apps/openlitespeed/logo.png b/apps/openlitespeed/logo.png deleted file mode 100644 index dba1cecc..00000000 Binary files a/apps/openlitespeed/logo.png and /dev/null differ diff --git a/apps/openresty/1.21.4.3-0-focal/conf/conf.d/00.default.conf b/apps/openresty/1.21.4.3-0-focal/conf/conf.d/00.default.conf deleted file mode 100644 index aa768b25..00000000 --- a/apps/openresty/1.21.4.3-0-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/apps/openresty/1.21.4.3-0-focal/conf/conf.d/default.conf b/apps/openresty/1.21.4.3-0-focal/conf/conf.d/default.conf deleted file mode 100644 index da6594f8..00000000 --- a/apps/openresty/1.21.4.3-0-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/apps/openresty/1.21.4.3-0-focal/conf/fastcgi-php.conf b/apps/openresty/1.21.4.3-0-focal/conf/fastcgi-php.conf deleted file mode 100644 index 0f3d134d..00000000 --- a/apps/openresty/1.21.4.3-0-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/apps/openresty/1.21.4.3-0-focal/conf/fastcgi_params b/apps/openresty/1.21.4.3-0-focal/conf/fastcgi_params deleted file mode 100644 index 0aa378e6..00000000 --- a/apps/openresty/1.21.4.3-0-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/apps/openresty/1.21.4.3-0-focal/conf/mime.types b/apps/openresty/1.21.4.3-0-focal/conf/mime.types deleted file mode 100644 index 065d8918..00000000 --- a/apps/openresty/1.21.4.3-0-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/apps/openresty/1.21.4.3-0-focal/conf/nginx.conf b/apps/openresty/1.21.4.3-0-focal/conf/nginx.conf deleted file mode 100644 index 67bb20cc..00000000 --- a/apps/openresty/1.21.4.3-0-focal/conf/nginx.conf +++ /dev/null @@ -1,47 +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]\."; - - lua_code_cache on; - lua_shared_dict limit 10m; - lua_package_path "/www/common/waf/?.lua;/usr/local/openresty/lualib/?.lua;"; - init_by_lua_file /www/common/waf/init.lua; - - 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; -} \ No newline at end of file diff --git a/apps/openresty/1.21.4.3-0-focal/data.yml b/apps/openresty/1.21.4.3-0-focal/data.yml deleted file mode 100755 index f4da223c..00000000 --- a/apps/openresty/1.21.4.3-0-focal/data.yml +++ /dev/null @@ -1,14 +0,0 @@ -additionalProperties: - formFields: - - default: 80 - envKey: PANEL_APP_PORT_HTTP - labelEn: HTTP Port - labelZh: HTTP 端口 - required: true - type: number - - default: 443 - envKey: PANEL_APP_PORT_HTTPS - labelEn: HTTPS Port - labelZh: HTTPS 端口 - required: true - type: number diff --git a/apps/openresty/1.21.4.3-0-focal/docker-compose.yml b/apps/openresty/1.21.4.3-0-focal/docker-compose.yml deleted file mode 100644 index edbf513a..00000000 --- a/apps/openresty/1.21.4.3-0-focal/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -version: '3' -services: - openresty: - image: openresty/openresty:1.21.4.3-0-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 - - ./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 - labels: - createdBy: "Apps" diff --git a/apps/openresty/1.21.4.3-0-focal/root/404.html b/apps/openresty/1.21.4.3-0-focal/root/404.html deleted file mode 100644 index d75ed781..00000000 --- a/apps/openresty/1.21.4.3-0-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/apps/openresty/1.21.4.3-0-focal/root/index.html b/apps/openresty/1.21.4.3-0-focal/root/index.html deleted file mode 100644 index 7ad10b81..00000000 --- a/apps/openresty/1.21.4.3-0-focal/root/index.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - 恭喜,站点创建成功! - - - -
-

恭喜, 站点创建成功!

-

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

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

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

-
- - \ No newline at end of file diff --git a/apps/openresty/1.21.4.3-0-focal/scripts/init.sh b/apps/openresty/1.21.4.3-0-focal/scripts/init.sh deleted file mode 100644 index dd1465ed..00000000 --- a/apps/openresty/1.21.4.3-0-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/apps/openresty/1.21.4.3-0-focal/www/common/waf/access.lua b/apps/openresty/1.21.4.3-0-focal/www/common/waf/access.lua deleted file mode 100644 index 67040aea..00000000 --- a/apps/openresty/1.21.4.3-0-focal/www/common/waf/access.lua +++ /dev/null @@ -1,394 +0,0 @@ -local match = string.match -local ngxMatch=ngx.re.match -local unescape=ngx.unescape_uri -local get_headers = ngx.req.get_headers -local cjson = require "cjson" -local content_length=tonumber(ngx.req.get_headers()['content-length']) -local method=ngx.req.get_method() - - -local function optionIsOn(options) - return options == "on" or options == "On" or options == "ON" -end - -local logPath = ngx.var.logdir -local rulePath = ngx.var.RulePath -local PostDeny = optionIsOn(ngx.var.postDeny) - -local function getClientIp() - IP = ngx.var.remote_addr - if IP == nil then - IP = "unknown" - end - return IP -end -local function write(logfile,msg) - local fd = io.open(logfile,"ab") - if fd == nil then return end - fd:write(msg) - fd:flush() - fd:close() -end -local function log(method,url,data,ruletag) - local attackLog = optionIsOn(ngx.var.attackLog) - if attackLog then - local realIp = getClientIp() - local ua = ngx.var.http_user_agent - local servername=ngx.var.server_name - local time=ngx.localtime() - local line = nil - if ua then - line = realIp.." ["..time.."] \""..method.." "..servername..url.."\" \""..data.."\" \""..ua.."\" \""..ruletag.."\"\n" - else - line = realIp.." ["..time.."] \""..method.." "..servername..url.."\" \""..data.."\" - \""..ruletag.."\"\n" - end - local filename = logPath..'/'..servername.."_"..ngx.today().."_sec.log" - write(filename,line) - end -end -------------------------------------规则读取函数------------------------------------------------------------------- -local function read_json(var) - file = io.open(rulePath..'/'..var .. '.json',"r") - if file==nil then - return - end - str = file:read("*a") - file:close() - list = cjson.decode(str) - return list -end - -local function select_rules(rules) - if not rules then return {} end - new_rules = {} - for i,v in ipairs(rules) do - if v[3] == 1 then - table.insert(new_rules,v[1]) - end - end - return new_rules -end - -local function read_str(var) - file = io.open(rulePath..'/'..var,"r") - if file==nil then - return - end - local str = file:read("*a") - file:close() - return str -end - -local html=read_str('warn.html') - -local function say_html() - local redirect = optionIsOn(ngx.var.redirect) - if redirect then - ngx.header.content_type = "text/html" - ngx.status = ngx.HTTP_FORBIDDEN - ngx.say(html) - ngx.exit(ngx.status) - end -end - -local function whiteUrlCheck() - local urlWhiteAllow = optionIsOn(ngx.var.urlWhiteAllow) - if urlWhiteAllow then - local urlWhiteList = read_json('url_white') - if urlWhiteList ~= nil then - for _, rule in pairs(urlWhiteList) do - if ngxMatch(ngx.var.uri, rule, "isjo") then - return true - end - end - end - end - return false -end - -local function fileExtCheck(ext) - local fileExtDeny = optionIsOn(ngx.var.fileExtDeny) - if fileExtDeny then - local fileExtBlockList = read_json('fileExtBlockList') - local items = Set(fileExtBlockList) - ext=string.lower(ext) - if ext then - for rule in pairs(items) do - if ngx.re.match(ext,rule,"isjo") then - log('POST',ngx.var.request_uri,"-","file attack with ext "..ext) - say_html() - end - end - end - end - return false -end -function Set (list) - local set = {} - for _, l in ipairs(list) do set[l] = true end - return set -end - -local function getArgsCheck() - local argsDeny = optionIsOn(ngx.var.argsDeny) - if argsDeny then - local argsCheckList=select_rules(read_json('args_check')) - if argsCheckList then - for _,rule in pairs(argsCheckList) do - local uriArgs = ngx.req.get_uri_args() - for key, val in pairs(uriArgs) do - if type(val)=='table' then - local t={} - for k,v in pairs(val) do - if v == true then - v="" - end - table.insert(t,v) - end - data=table.concat(t, " ") - else - data=val - end - if data and type(data) ~= "boolean" and rule ~="" and ngxMatch(unescape(data),rule,"isjo") then - log('GET',ngx.var.request_uri,"-",rule) - say_html() - return true - end - end - end - end - end - return false -end - - -local function blockUrlCheck() - local urlBlockDeny = optionIsOn(ngx.var.urlBlockDeny) - if urlBlockDeny then - local urlBlockList=read_json('url_block') - for _, rule in pairs(urlBlockList) do - if rule ~= "" and ngxMatch(ngx.var.request_uri, rule, "isjo") then - log('GET', ngx.var.request_uri, "-", rule) - say_html() - return true - end - end - end - return false -end - -function ua() - local ua = ngx.var.http_user_agent - if ua ~= nil then - local uaRules = select_rules(read_json('user_agent')) - for _,rule in pairs(uaRules) do - if rule ~="" and ngxMatch(ua,rule,"isjo") then - log('UA',ngx.var.request_uri,"-",rule) - say_html() - return true - end - end - end - return false -end -function body(data) - local postCheckList = select_rules(read_json('post_check')) - for _,rule in pairs(postCheckList) do - if rule ~="" and data~="" and ngxMatch(unescape(data),rule,"isjo") then - log('POST',ngx.var.request_uri,data,rule) - say_html() - return true - end - end - return false -end -local function cookieCheck() - local ck = ngx.var.http_cookie - local cookieDeny = optionIsOn(ngx.var.cookieDeny) - if cookieDeny and ck then - local cookieBlockList = select_rules(read_json('cookie_block')) - for _,rule in pairs(cookieBlockList) do - if rule ~="" and ngxMatch(ck,rule,"isjo") then - log('Cookie',ngx.var.request_uri,"-",rule) - say_html() - return true - end - end - end - return false -end - -local function denyCC() - local ccRate = read_str('cc.json') - local ccDeny = optionIsOn(ngx.var.CCDeny) - if ccDeny and ccRate then - local uri=ngx.var.uri - ccCount=tonumber(string.match(ccRate,'(.*)/')) - ccSeconds=tonumber(string.match(ccRate,'/(.*)')) - local access_uri = getClientIp()..uri - local limit = ngx.shared.limit - local req,_=limit:get(access_uri) - if req then - if req > ccCount then - ngx.exit(503) - return true - else - limit:incr(access_uri,1) - end - else - limit:set(access_uri,1,ccSeconds) - end - end - return false -end - -local function get_boundary() - local header = get_headers()["content-type"] - if not header then - return nil - end - - if type(header) == "table" then - header = header[1] - end - - local m = match(header, ";%s*boundary=\"([^\"]+)\"") - if m then - return m - end - - return match(header, ";%s*boundary=([^\",;]+)") -end - -local function whiteIpCheck() - local ipWhiteAllow = optionIsOn(ngx.var.ipWhiteAllow) - if ipWhiteAllow then - local ipWhiteList=read_json('ip_white') - if next(ipWhiteList) ~= nil then - for _,ip in pairs(ipWhiteList) do - if getClientIp()==ip then - return true - end - end - end - end - return false -end - -local function blockIpCheck() - local ipBlockDeny = optionIsOn(ngx.var.ipBlockDeny) - if ipBlockDeny then - local ipBlockList=read_json('ip_block') - if next(ipBlockList) ~= nil then - for _,ip in pairs(ipBlockList) do - if getClientIp()==ip then - ngx.exit(403) - return true - end - end - end - end - return false -end - -local function handleBodyKeyOrVal(kv) - if type(kv) == "table" then - if type(kv[1]) == "boolean" then - return - end - data = table.concat(kv, ", ") - else - data = kv - end - if data then - if type(data) ~= "boolean" then - body(data) - end - end -end - -local function postCheck() - if method == "POST" then - local boundary = get_boundary() - local fileExtDeny = optionIsOn(ngx.var.fileExtDeny) - if boundary and fileExtDeny then - local protocol = ngx.var.server_protocol - if protocol == "HTTP/2.0" then - return - end - local len = string.len - local sock = ngx.req.socket() - if not sock then - return - end - ngx.req.init_body(128 * 1024) - sock:settimeout(0) - local contentLength = nil - contentLength = tonumber(ngx.req.get_headers()['content-length']) - local chunk_size = 4096 - if contentLength < chunk_size then - chunk_size = contentLength - end - local size = 0 - while size < contentLength do - local data, err, partial = sock:receive(chunk_size) - data = data or partial - if not data then - return - end - ngx.req.append_body(data) - if body(data) then - return true - end - size = size + len(data) - local m = ngxMatch(data, 'Content-Disposition: form-data; (.+)filename="(.+)\\.(.*)"', 'ijo') - if m then - fileExtCheck(m[3]) - fileTranslate = true - else - if ngxMatch(data, "Content-Disposition:", 'isjo') then - fileTranslate = false - end - if fileTranslate == false then - if body(data) then - return true - end - end - end - local less = content_length - size - if less < chunk_size then - chunk_size = less - end - end - ngx.req.finish_body() - else - ngx.req.read_body() - local bodyObj = ngx.req.get_post_args() - if not bodyObj then - return - end - for key, val in pairs(bodyObj) do - handleBodyKeyOrVal(key) - handleBodyKeyOrVal(val) - end - end - end -end - -if whiteIpCheck() then -elseif blockIpCheck() then -elseif denyCC() then -elseif ngx.var.http_Acunetix_Aspect then - ngx.exit(444) -elseif ngx.var.http_X_Scan_Memo then - ngx.exit(444) -elseif whiteUrlCheck() then -elseif ua() then -elseif blockUrlCheck() then -elseif getArgsCheck() then -elseif cookieCheck() then -elseif PostDeny then - postCheck() -else - return -end diff --git a/apps/openresty/1.21.4.3-0-focal/www/common/waf/init.lua b/apps/openresty/1.21.4.3-0-focal/www/common/waf/init.lua deleted file mode 100644 index 84f342c3..00000000 --- a/apps/openresty/1.21.4.3-0-focal/www/common/waf/init.lua +++ /dev/null @@ -1 +0,0 @@ -ngx.log(ngx.INFO,"init success") \ No newline at end of file diff --git a/apps/openresty/1.21.4.3-0-focal/www/common/waf/rules/args_check.json b/apps/openresty/1.21.4.3-0-focal/www/common/waf/rules/args_check.json deleted file mode 100644 index 0b1767cb..00000000 --- a/apps/openresty/1.21.4.3-0-focal/www/common/waf/rules/args_check.json +++ /dev/null @@ -1,26 +0,0 @@ -[ - ["\\.\\./\\.\\./", "\u76ee\u5f55\u4fdd\u62a41", 1 ], - ["(?:etc\\/\\W*passwd)", "\u76ee\u5f55\u4fdd\u62a43", 1 ], - ["(gopher|doc|php|glob|^file|phar|zlib|ftp|ldap|dict|ogg|data)\\:\\/", "PHP\u6d41\u534f\u8bae\u8fc7\u6ee41", 1 ], - ["base64_decode\\(", "\u4e00\u53e5\u8bdd\u6728\u9a6c\u8fc7\u6ee43", 1], - ["(?:define|eval|file_get_contents|include|require|require_once|shell_exec|phpinfo|system|passthru|char|chr|preg_\\w+|execute|echo|print|print_r|var_dump|(fp)open|alert|showmodaldialog)\\(", "\u4e00\u53e5\u8bdd\u6728\u9a6c\u8fc7\u6ee44", 1 ], - ["\\$_(GET|post|cookie|files|session|env|phplib|GLOBALS|SERVER)\\[", "\u4e00\u53e5\u8bdd\u6728\u9a6c\u8fc7\u6ee45", 1], - ["select.+(from|limit)", "SQL\u6ce8\u5165\u8fc7\u6ee42", 1 ], - ["(?:(union(.*?)select))", "SQL\u6ce8\u5165\u8fc7\u6ee43", 1 ], - ["benchmark\\((.*)\\,(.*)\\)", "SQL\u6ce8\u5165\u8fc7\u6ee46", 1], - ["(?:from\\W+information_schema\\W)", "SQL\u6ce8\u5165\u8fc7\u6ee47", 1], - ["(?:(?:current_)user|database|concat|extractvalue|polygon|updatexml|geometrycollection|schema|multipoint|multipolygon|connection_id|linestring|multilinestring|exp|right|sleep|group_concat|load_file|benchmark|file_put_contents|urldecode|system|file_get_contents|select|substring|substr|fopen|popen|phpinfo|user|alert|scandir|shell_exec|eval|execute|concat_ws|strcmp|right)\\s*\\(", "SQL\u6ce8\u5165\u8fc7\u6ee48", 1 ], - ["\\<(iframe|script|body|img|layer|div|meta|style|base|object)", "XSS\u8fc7\u6ee41", 1], - ["(invokefunction|call_user_func_array|\\\\think\\\\)", "ThinkPHP payload\u5c01\u5835", 1 ], - ["^url_array\\[.*\\]$", "Metinfo6.x XSS\u6f0f\u6d1e", 1], - ["(extractvalue\\(|concat\\(0x|user\\(\\)|substring\\(|count\\(\\*\\)|substring\\(hex\\(|updatexml\\()", "SQL\u62a5\u9519\u6ce8\u5165\u8fc7\u6ee401", 1], - ["(@@version|load_file\\(|NAME_CONST\\(|exp\\(\\~|floor\\(rand\\(|geometrycollection\\(|multipoint\\(|polygon\\(|multipolygon\\(|linestring\\(|multilinestring\\()", "SQL\u62a5\u9519\u6ce8\u5165\u8fc7\u6ee402", 1], - ["(ORD\\(|MID\\(|IFNULL\\(|CAST\\(|CHAR\\()", "SQL\u6ce8\u5165\u8fc7\u6ee41", 1], - ["(EXISTS\\(|SELECT\\#|\\(SELECT)", "SQL\u6ce8\u5165\u8fc7\u6ee41", 1], - ["(bin\\(|ascii\\(|benchmark\\(|concat_ws\\(|group_concat\\(|strcmp\\(|left\\(|datadir\\(|greatest\\()", "SQL\u62a5\u9519\u6ce8\u5165\u8fc7\u6ee401", 1], - ["(?:from.+?information_schema.+?)", "", 1], - ["(array_map\\(\"ass)", "\u83dc\u5200\u6d41\u91cf\u8fc7\u6ee4", 1], - ["'$", "test", 1], - ["\\${jndi:", "log4j2\u62e6\u622a", 1 ], - ["terrewrewrwr", "", 1] -] \ No newline at end of file diff --git a/apps/openresty/1.21.4.3-0-focal/www/common/waf/rules/cc.json b/apps/openresty/1.21.4.3-0-focal/www/common/waf/rules/cc.json deleted file mode 100644 index 2286d9b8..00000000 --- a/apps/openresty/1.21.4.3-0-focal/www/common/waf/rules/cc.json +++ /dev/null @@ -1 +0,0 @@ -100/60 \ No newline at end of file diff --git a/apps/openresty/1.21.4.3-0-focal/www/common/waf/rules/cookie_block.json b/apps/openresty/1.21.4.3-0-focal/www/common/waf/rules/cookie_block.json deleted file mode 100644 index 659a58c0..00000000 --- a/apps/openresty/1.21.4.3-0-focal/www/common/waf/rules/cookie_block.json +++ /dev/null @@ -1,12 +0,0 @@ -[ - ["base64_decode\\(","一句话木马过滤3",1], - ["\\$_(GET|post|cookie|files|session|env|phplib|GLOBALS|SERVER)\\[","一句话木马过滤5",1], - ["select.+(from|limit)","SQL注入过滤2",1], - ["(?:(union(.*?)select))","SQL注入过滤3",1], - ["sleep\\((\\s*)(\\d*)(\\s*)\\)","SQL注入过滤5",1], - ["benchmark\\((.*)\\,(.*)\\)","SQL注入过滤6",1], - ["(?:from\\W+information_schema\\W)","SQL注入过滤7",1], - ["(?:(?:current_)user|database|schema|connection_id)\\s*\\(","SQL注入过滤8",1], - ["into(\\s+)+(?:dump|out)file\\s*","SQL注入过滤9",1], - ["group\\s+by.+\\(","SQL注入过滤10",1] -] diff --git a/apps/openresty/1.21.4.3-0-focal/www/common/waf/rules/file_ext_block.json b/apps/openresty/1.21.4.3-0-focal/www/common/waf/rules/file_ext_block.json deleted file mode 100644 index 4bfec715..00000000 --- a/apps/openresty/1.21.4.3-0-focal/www/common/waf/rules/file_ext_block.json +++ /dev/null @@ -1 +0,0 @@ -["php","jsp"] \ No newline at end of file diff --git a/apps/openresty/1.21.4.3-0-focal/www/common/waf/rules/ip_block.json b/apps/openresty/1.21.4.3-0-focal/www/common/waf/rules/ip_block.json deleted file mode 100644 index 0637a088..00000000 --- a/apps/openresty/1.21.4.3-0-focal/www/common/waf/rules/ip_block.json +++ /dev/null @@ -1 +0,0 @@ -[] \ No newline at end of file diff --git a/apps/openresty/1.21.4.3-0-focal/www/common/waf/rules/ip_white.json b/apps/openresty/1.21.4.3-0-focal/www/common/waf/rules/ip_white.json deleted file mode 100644 index 0637a088..00000000 --- a/apps/openresty/1.21.4.3-0-focal/www/common/waf/rules/ip_white.json +++ /dev/null @@ -1 +0,0 @@ -[] \ No newline at end of file diff --git a/apps/openresty/1.21.4.3-0-focal/www/common/waf/rules/post_check.json b/apps/openresty/1.21.4.3-0-focal/www/common/waf/rules/post_check.json deleted file mode 100644 index 22d80c6e..00000000 --- a/apps/openresty/1.21.4.3-0-focal/www/common/waf/rules/post_check.json +++ /dev/null @@ -1,22 +0,0 @@ -[ - ["\\.\\./\\.\\./", "\u76ee\u5f55\u4fdd\u62a41", 1], - ["(?:etc\\/\\W*passwd)", "\u76ee\u5f55\u4fdd\u62a43", 1], - ["(gopher|doc|php|glob|^file|phar|zlib|ftp|ldap|dict|ogg|data)\\:\\/", "PHP\u6d41\u534f\u8bae\u8fc7\u6ee41", 1], - ["base64_decode\\(", "\u4e00\u53e5\u8bdd*\u5c4f\u853d\u7684\u5173\u952e\u5b57*\u8fc7\u6ee41", 1], - ["(?:define|eval|file_get_contents|include|require_once|shell_exec|phpinfo|system|passthru|chr|char|preg_\\w+|execute|echo|print|print_r|var_dump|(fp)open|alert|showmodaldialog|file_put_contents|fopen|urldecode|scandir)\\(", "\u4e00\u53e5\u8bdd*\u5c4f\u853d\u7684\u5173\u952e\u5b57*\u8fc7\u6ee42", 1], - ["\\$_(GET|post|cookie|files|session|env|phplib|GLOBALS|SERVER)", "\u4e00\u53e5\u8bdd*\u5c4f\u853d\u7684\u5173\u952e\u5b57*\u8fc7\u6ee43", 1], - ["select.+(from|limit)", "SQL\u6ce8\u5165\u8fc7\u6ee42",1], - ["(?:(union(.*?)select))", "SQL\u6ce8\u5165\u8fc7\u6ee43",1], - ["benchmark\\((.*)\\,(.*)\\)", "SQL\u6ce8\u5165\u8fc7\u6ee46", 1], - ["(?:from\\W+information_schema\\W)", "SQL\u6ce8\u5165\u8fc7\u6ee47", 1], - ["(?:(?:current_)user|database|concat|extractvalue|polygon|updatexml|geometrycollection|schema|multipoint|multipolygon|connection_id|linestring|multilinestring|exp|right|sleep|group_concat|load_file|benchmark|file_put_contents|urldecode|system|file_get_contents|select|substring|substr|fopen|popen|phpinfo|user|alert|scandir|shell_exec|eval|execute|concat_ws|strcmp|right)\\s*\\(", "SQL\u6ce8\u5165\u8fc7\u6ee48",1], - ["(extractvalue\\(|concat\\(|user\\(\\)|substring\\(|count\\(\\*\\)|substring\\(hex\\(|updatexml\\()", "SQL\u62a5\u9519\u6ce8\u5165\u8fc7\u6ee401", 1], - ["(@@version|load_file\\(|NAME_CONST\\(|exp\\(\\~|floor\\(rand\\(|geometrycollection\\(|multipoint\\(|polygon\\(|multipolygon\\(|linestring\\(|multilinestring\\(|right\\()", "SQL\u62a5\u9519\u6ce8\u5165\u8fc7\u6ee402", 1], - ["(substr\\()", "SQL\u6ce8\u5165\u8fc7\u6ee410", 1], - ["(ORD\\(|MID\\(|IFNULL\\(|CAST\\(|CHAR\\()", "SQL\u6ce8\u5165\u8fc7\u6ee41", 1], - ["(EXISTS\\(|SELECT\\#|\\(SELECT|select\\()", "SQL\u6ce8\u5165\u8fc7\u6ee41", 1], - ["(array_map\\(\"ass)", "\u83dc\u5200\u6d41\u91cf\u8fc7\u6ee4", 1], - ["(bin\\(|ascii\\(|benchmark\\(|concat_ws\\(|group_concat\\(|strcmp\\(|left\\(|datadir\\(|greatest\\()", "SQL\u62a5\u9519\u6ce8\u5165\u8fc7\u6ee401", 1], - ["(?:from.+?information_schema.+?)", "", 1], - ["\\${jndi:", "log4j2\u62e6\u622a", 1] -] \ No newline at end of file diff --git a/apps/openresty/1.21.4.3-0-focal/www/common/waf/rules/url_block.json b/apps/openresty/1.21.4.3-0-focal/www/common/waf/rules/url_block.json deleted file mode 100644 index 0637a088..00000000 --- a/apps/openresty/1.21.4.3-0-focal/www/common/waf/rules/url_block.json +++ /dev/null @@ -1 +0,0 @@ -[] \ No newline at end of file diff --git a/apps/openresty/1.21.4.3-0-focal/www/common/waf/rules/url_white.json b/apps/openresty/1.21.4.3-0-focal/www/common/waf/rules/url_white.json deleted file mode 100644 index 0637a088..00000000 --- a/apps/openresty/1.21.4.3-0-focal/www/common/waf/rules/url_white.json +++ /dev/null @@ -1 +0,0 @@ -[] \ No newline at end of file diff --git a/apps/openresty/1.21.4.3-0-focal/www/common/waf/rules/user_agent.json b/apps/openresty/1.21.4.3-0-focal/www/common/waf/rules/user_agent.json deleted file mode 100644 index 1f812573..00000000 --- a/apps/openresty/1.21.4.3-0-focal/www/common/waf/rules/user_agent.json +++ /dev/null @@ -1,17 +0,0 @@ -[ - ["(WPScan|HTTrack|antSword|harvest|audit|dirbuster|pangolin|nmap|sqln|hydra|Parser|libwww|BBBike|sqlmap|w3af|owasp|Nikto|fimap|havij|zmeu|BabyKrokodil|netsparker|httperf| SF/)", "\u5173\u952e\u8bcd\u8fc7\u6ee41", 1], - ["(?:define|eval|file_get_contents|include|require_once|shell_exec|phpinfo|system|passthru|chr|char|preg_\\w+|execute|echo|print|print_r|var_dump|(fp)open|alert|showmodaldialog|file_put_contents|fopen|urldecode|scandir)\\(", "\u4e00\u53e5\u8bdd*\u5c4f\u853d\u7684\u5173\u952e\u5b57*\u8fc7\u6ee42", 1], - ["\\$_(GET|post|cookie|files|session|env|phplib|GLOBALS|SERVER)", "\u4e00\u53e5\u8bdd*\u5c4f\u853d\u7684\u5173\u952e\u5b57*\u8fc7\u6ee43", 1], - ["select\\s+.+(from|limit)\\s+", "SQL\u6ce8\u5165\u8fc7\u6ee42", 1], - ["(?:(union(.*?)select))", "SQL\u6ce8\u5165\u8fc7\u6ee43", 1], - ["benchmark\\((.*)\\,(.*)\\)", "SQL\u6ce8\u5165\u8fc7\u6ee46", 1], - ["(?:from\\W+information_schema\\W)", "SQL\u6ce8\u5165\u8fc7\u6ee47", 1], - ["(?:(?:current_)user|database|schema|connection_id)\\s*\\(", "SQL\u6ce8\u5165\u8fc7\u6ee48", 1], - ["(extractvalue\\(|concat\\(0x|user\\(\\)|substring\\(|count\\(\\*\\)|substring\\(hex\\(|updatexml\\()", "SQL\u62a5\u9519\u6ce8\u5165\u8fc7\u6ee401", 1], - ["(@@version|load_file\\(|NAME_CONST\\(|exp\\(\\~|floor\\(rand\\(|geometrycollection\\(|multipoint\\(|polygon\\(|multipolygon\\(|linestring\\(|multilinestring\\()", "SQL\u62a5\u9519\u6ce8\u5165\u8fc7\u6ee402", 1], - ["(substr\\()", "SQL\u6ce8\u5165\u8fc7\u6ee410", 1], - ["(ORD\\(|MID\\(|IFNULL\\(|CAST\\(|CHAR\\))", "SQL\u6ce8\u5165\u8fc7\u6ee41", 1], - ["(EXISTS\\(|SELECT\\#|\\(SELECT)", "SQL\u6ce8\u5165\u8fc7\u6ee41", 1], - ["(array_map\\(\"ass)", "\u83dc\u5200\u6d41\u91cf\u8fc7\u6ee4", 1], - ["(bin\\(|ascii\\(|benchmark\\(|concat_ws\\(|group_concat\\(|strcmp\\(|left\\(|datadir\\(|greatest\\()", "SQL\u62a5\u9519\u6ce8\u5165\u8fc7\u6ee401", 1] -] \ No newline at end of file diff --git a/apps/openresty/1.21.4.3-0-focal/www/common/waf/rules/warn.html b/apps/openresty/1.21.4.3-0-focal/www/common/waf/rules/warn.html deleted file mode 100644 index 760808b9..00000000 --- a/apps/openresty/1.21.4.3-0-focal/www/common/waf/rules/warn.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - 网站防火墙 - - - - -
-
-
- 网站防火墙 -
-
-

- - 您的请求带有不合法参数,已被网站管理员设置拦截! - -

-

- 可能原因:您提交的内容包含危险的攻击请求 -

-

- 如何解决: -

-
    -
  • - 1)检查提交内容; -
  • -
  • - 2)如网站托管,请联系空间提供商; -
  • -
  • - 3)普通网站访客,请联系网站管理员; -
  • -
-
-
-
- - diff --git a/apps/openresty/README.md b/apps/openresty/README.md deleted file mode 100644 index a675aeeb..00000000 --- a/apps/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/apps/openresty/data.yml b/apps/openresty/data.yml deleted file mode 100755 index d5cf9957..00000000 --- a/apps/openresty/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: OpenResty -tags: - - Web 服务器 -title: 基于 NGINX 和 LuaJIT 的 Web 平台 -type: 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 - 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 diff --git a/apps/openresty/logo.png b/apps/openresty/logo.png deleted file mode 100644 index 732f8df4..00000000 Binary files a/apps/openresty/logo.png and /dev/null differ diff --git a/apps/palworld/README.md b/apps/palworld/README.md deleted file mode 100644 index 576f0426..00000000 --- a/apps/palworld/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Palworld - -**《幻兽帕鲁》** 是 **Pocketpair** 开发的一款开放世界生存制作游戏,游戏于 2023 年 11 月 02 日至 11 月 05 日进行了封闭网络测试,于 2024 年 01 月 18 日发行抢先体验版本。 - -游戏中,玩家可以在广阔的世界中收集神奇的生物“帕鲁”,派他们进行战斗、建造、做农活,工业生产等。 \ No newline at end of file diff --git a/apps/palworld/data.yml b/apps/palworld/data.yml deleted file mode 100644 index b5a4c28a..00000000 --- a/apps/palworld/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Palworld -tags: - - 休闲游戏 -title: 幻兽帕鲁服务端 -type: 休闲游戏 -description: 幻兽帕鲁服务端 -additionalProperties: - key: palworld - name: Palworld - tags: - - Game - shortDescZh: 幻兽帕鲁服务端 - shortDescEn: Palworld Dedicated Server (幻兽帕鲁) - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://hub.docker.com/r/kagurazakanyaa/palworld - github: https://github.com/KagurazakaNyaa/palworld-docker - document: https://github.com/KagurazakaNyaa/palworld-docker diff --git a/apps/palworld/latest/data.yml b/apps/palworld/latest/data.yml deleted file mode 100644 index 0916d836..00000000 --- a/apps/palworld/latest/data.yml +++ /dev/null @@ -1,100 +0,0 @@ -additionalProperties: - formFields: - - default: 8211 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - - default: 25575 - edit: true - envKey: PANEL_APP_PORT_RCON - labelEn: RCON Port - labelZh: RCON 端口 - required: true - rule: paramPort - type: number - - default: 32 - edit: true - envKey: MAX_PLAYERS - labelEn: Maximum number of participants on the server - labelZh: 玩家数量限制 - 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) - required: true - type: text - - default: 'true' - edit: true - envKey: PUBLIC_SWITCH - labelEn: Setup server as a community server (true / false) - labelZh: 是否将服务器设置为社区服务器 (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 (留空自动检测) - required: false - type: text - - default: '' - edit: true - envKey: PANEL_APP_PORT_PUBLIC - labelEn: PUBLIC PORT (If not specified, it will be detected automatically) - labelZh: 服务器端口 (留空自动检测) - 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) - required: true - type: text - - default: '1Panel Palworld Server' - edit: true - envKey: SERVER_NAME - labelEn: Server name - labelZh: 服务器名 - required: true - type: text - - default: '1Panel Palworld Server' - edit: true - envKey: SERVER_DESC - labelEn: Server description - labelZh: 服务器说明 - required: true - type: text - - default: palworld - edit: true - envKey: ADMIN_PASSWORD - labelEn: Admin password - labelZh: 管理员密码 - random: true - required: false - rule: paramComplexity - type: password - - default: '' - edit: true - envKey: SERVER_PASSWORD - labelEn: Server password - labelZh: 服务器密码 - required: false - rule: paramComplexity - type: password - - default: 'false' - edit: true - envKey: RCON_SWITCH - labelEn: Enable RCON (true / false) - labelZh: 是否启用 RCON (true / false) - required: true - type: text diff --git a/apps/palworld/latest/data/.gitkeep b/apps/palworld/latest/data/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/palworld/latest/docker-compose.yml b/apps/palworld/latest/docker-compose.yml deleted file mode 100644 index 11068299..00000000 --- a/apps/palworld/latest/docker-compose.yml +++ /dev/null @@ -1,33 +0,0 @@ -version: '3.9' -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/apps/palworld/latest/scripts/init.sh b/apps/palworld/latest/scripts/init.sh deleted file mode 100644 index 4e811c86..00000000 --- a/apps/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/apps/palworld/logo.png b/apps/palworld/logo.png deleted file mode 100644 index 966c228f..00000000 Binary files a/apps/palworld/logo.png and /dev/null differ diff --git a/apps/pgadmin4/8.2/data.yml b/apps/pgadmin4/8.2/data.yml deleted file mode 100644 index ba210e77..00000000 --- a/apps/pgadmin4/8.2/data.yml +++ /dev/null @@ -1,24 +0,0 @@ -additionalProperties: - formFields: - - default: 80 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Web Port - labelZh: Web 端口 - required: true - rule: paramPort - type: number - - default: admin@1panel.cn - edit: true - envKey: PGADMIN_DEFAULT_EMAIL - labelEn: Admin Email - labelZh: 管理员邮箱 - required: true - type: text - - default: hgraZPD3v00I5AwuzSpL - edit: true - envKey: PGADMIN_DEFAULT_PASSWORD - labelEn: Admin Password - labelZh: 管理员密码 - required: true - type: password diff --git a/apps/pgadmin4/8.2/data/.gitkeep b/apps/pgadmin4/8.2/data/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/pgadmin4/8.2/docker-compose.yml b/apps/pgadmin4/8.2/docker-compose.yml deleted file mode 100644 index bae7adbe..00000000 --- a/apps/pgadmin4/8.2/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -version: '3.8' -services: - pgadmin4: - image: dpage/pgadmin4:8.2 - 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/apps/pgadmin4/8.2/scripts/init.sh b/apps/pgadmin4/8.2/scripts/init.sh deleted file mode 100644 index 593e79fb..00000000 --- a/apps/pgadmin4/8.2/scripts/init.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -chown -R 5050:5050 data diff --git a/apps/pgadmin4/README.md b/apps/pgadmin4/README.md deleted file mode 100644 index 1ab3ac7a..00000000 --- a/apps/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/apps/pgadmin4/data.yml b/apps/pgadmin4/data.yml deleted file mode 100644 index e7f782a1..00000000 --- a/apps/pgadmin4/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: PGAdmin4 -tags: - - 开发工具 -title: PostgreSQL 开源管理工具 -type: 开发工具 -description: PostgreSQL 开源管理工具 -additionalProperties: - key: pgadmin4 - name: PGAdmin4 - tags: - - DevTool - shortDescZh: Postgres 的开源管理工具。 - shortDescEn: An open source management tool for Postgres. - type: tool - crossVersionUpdate: true - limit: 1 - website: https://www.pgadmin.org - github: https://github.com/pgadmin-org/pgadmin4 - document: https://www.pgadmin.org/docs \ No newline at end of file diff --git a/apps/pgadmin4/logo.png b/apps/pgadmin4/logo.png deleted file mode 100644 index b0c5dcee..00000000 Binary files a/apps/pgadmin4/logo.png and /dev/null differ diff --git a/apps/php5/5.4.45/build/.env b/apps/php5/5.4.45/build/.env deleted file mode 100644 index de27ea18..00000000 --- a/apps/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/apps/php5/5.4.45/build/config.json b/apps/php5/5.4.45/build/config.json deleted file mode 100644 index ac01fcfa..00000000 --- a/apps/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": "sg11", - "value": "sourceguardian" - } - ], - "envKey": "PHP_EXTENSIONS", - "edit": true - } - ] -} \ No newline at end of file diff --git a/apps/php5/5.4.45/build/docker-compose.yml b/apps/php5/5.4.45/build/docker-compose.yml deleted file mode 100644 index 4082ebc9..00000000 --- a/apps/php5/5.4.45/build/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -version: '3' -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/apps/php5/5.4.45/build/php/Dockerfile b/apps/php5/5.4.45/build/php/Dockerfile deleted file mode 100644 index 3b8618d1..00000000 --- a/apps/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/apps/php5/5.4.45/build/php/extensions/install-php-extensions b/apps/php5/5.4.45/build/php/extensions/install-php-extensions deleted file mode 100644 index 164c8d47..00000000 --- a/apps/php5/5.4.45/build/php/extensions/install-php-extensions +++ /dev/null @@ -1,4157 +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.1.28 - -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 wanted PHP module version, resolving it if it starts with '^' -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The version to be used -resolveWantedPHPModuleVersion() { - resolveWantedPHPModuleVersion_raw="$(getWantedPHPModuleVersion "$1")" - resolveWantedPHPModuleVersion_afterCaret="${resolveWantedPHPModuleVersion_raw#^}" - if test "$resolveWantedPHPModuleVersion_raw" = "$resolveWantedPHPModuleVersion_afterCaret"; then - printf '%s' "$resolveWantedPHPModuleVersion_raw" - return - fi - resolveWantedPHPModuleVersion_xml="$(curl -sSLf "http://pecl.php.net/rest/r/$1/allreleases.xml")" - resolveWantedPHPModuleVersion_versions="$(printf '%s' "$resolveWantedPHPModuleVersion_xml" | tr -s ' \t\r\n' ' ' | sed -r 's# *<#\n<#g' | grep '' | sed 's###g' | sed 's# ##g')" - resetIFS - for resolveWantedPHPModuleVersion_version in $resolveWantedPHPModuleVersion_versions; do - resolveWantedPHPModuleVersion_suffix="${resolveWantedPHPModuleVersion_version#$resolveWantedPHPModuleVersion_afterCaret}" - if test "$resolveWantedPHPModuleVersion_version" != "${resolveWantedPHPModuleVersion_version#$resolveWantedPHPModuleVersion_afterCaret.}"; then - # Example: looking for 1.0, found 1.0.1 - printf '%s' "$resolveWantedPHPModuleVersion_version" - return - fi - done - for resolveWantedPHPModuleVersion_version in $resolveWantedPHPModuleVersion_versions; do - resolveWantedPHPModuleVersion_suffix="${resolveWantedPHPModuleVersion_version#$resolveWantedPHPModuleVersion_afterCaret}" - if test "$resolveWantedPHPModuleVersion_version" = "$resolveWantedPHPModuleVersion_suffix"; then - continue - fi - if test -z "$resolveWantedPHPModuleVersion_suffix"; then - # Example: looking for 1.0, found exactly it - printf '%s' "$resolveWantedPHPModuleVersion_version" - return - fi - case "$resolveWantedPHPModuleVersion_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' "$resolveWantedPHPModuleVersion_version" - return - ;; - esac - done - printf 'Unable to find a version of "%s" compatible with "%s"\nAvailable versions are:\n%s\n' "$1" "$resolveWantedPHPModuleVersion_raw" "$resolveWantedPHPModuleVersion_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 - peclStabilityFlagToVersion_url="http://pecl.php.net/rest/r/$1/$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='libssl1.0' - 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_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - ddtrace@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent curl" - 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) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmpdec[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmpdec-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" - ;; - 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 ! 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" - ;; - 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" - ;; - 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" - ;; - 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" - ;; - 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++" - ;; - 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" - 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 - ;; - relay@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs zstd-libs" - if test $DISTRO_MAJMIN_VERSION -ge 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libssl1.1" - fi - ;; - 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" - ;; - 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 lapack libexecinfo openblas" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lapack-dev libexecinfo-dev openblas-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 - ;; - tensor@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapacke libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblapack-dev libopenblas-dev liblapacke-dev" - if test $DISTRO_VERSION_NUMBER -ge 11; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-10" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-10-dev" - elif test $DISTRO_VERSION_NUMBER -ge 10; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-8" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-8-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" - ;; - 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" - ;; - 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 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" - ;; - *) - 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"; 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 -installMicrosoftSqlServerODBC() { - printf 'Installing the Microsoft SQL Server ODBC Driver\n' - case "$DISTRO" in - alpine) - # https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server#alpine17 - 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.9.1.1-1_amd64.apk - else - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/b/9/f/b9f3cce4-3925-46d4-9f46-da08869c6486/msodbcsql18_18.0.1.1-1_amd64.apk - fi - printf '\n' | apk add --allow-untrusted /tmp/src/msodbcsql.apk - rm -rf /tmp/src/msodbcsql.apk - ;; - debian) - # https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server#debian17 - printf -- '- installing the Microsoft APT key\n' - if test $DISTRO_VERSION_NUMBER -ge 11; then - # apt-key is deprecated - curl -sSLf -o /etc/apt/trusted.gpg.d/microsoft.asc https://packages.microsoft.com/keys/microsoft.asc - else - 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 && $DISTRO_VERSION_NUMBER -le 11; then - # On Debian 9 and 11 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; 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_dir="$(getPackageSource https://aomedia.googlesource.com/aom/+archive/v3.3.0.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://code.videolan.org/videolan/dav1d/-/archive/0.9.2/dav1d-0.9.2.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; 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/25d0a5110be796eef47004412baf43333d9ecf26.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/v0.9.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 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 a bundled PHP module given its handle -# -# Arguments: -# $1: the handle of the PHP module -# -# Set: -# UNNEEDED_PACKAGE_LINKS -# -# Output: -# Nothing -installBundledModule() { - printf '### INSTALLING BUNDLED MODULE %s ###\n' "$1" - if test -n "$(getWantedPHPModuleVersion "$1")"; then - printf '### WARNING the module "%s" is bundled with PHP, you can NOT specify a version for it\n' "$1" >&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 - ;; - 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 - ;; - 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 - 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 -} - -# 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="$(resolveWantedPHPModuleVersion "$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 - 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.30.3 - 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 - fi - ;; - decimal) - case "$DISTRO" in - alpine) - if ! test -f /usr/local/lib/libmpdec.so; then - installRemoteModule_src="$(getPackageSource https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-2.5.1.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure --disable-cxx - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - ;; - esac - ;; - ds) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=1.3.0 - 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 - 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.20/gearmand-1.1.20.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=71b5f9001512e16d3cf4657b517e8a051d6ef36f - 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"; then - # See https://github.com/protocolbuffers/protobuf/issues/10619 - installRemoteModule_version=1.55.0 - 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 - ;; - 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 - ;; - 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 - fi - 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 - ;; - oauth) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.3 - fi - 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 - 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 - # 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 - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '22.8.0') -ge 0; then - #enable hook curl support? - addConfigureOption enable-hook-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - else - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '4.8.0') -ge 0; then - # enable postgres support? - addConfigureOption with-postgres yes - fi - fi - ;; - opentelemetry) - 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 - ;; - 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 -le 506; then - installRemoteModule_version=3.12.4 - else - # See https://github.com/protocolbuffers/protobuf/issues/10619 - installRemoteModule_version=3.23.2 - 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 - 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' - 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 - ;; - 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 - installRemoteModule_version=0.9.0 - 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 -le 506; then - installRemoteModule_version=2.4.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.13 - 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 - 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 - 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 -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 yes - # 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 yes - # 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 yes - # 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 yes - 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 - ;; - 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 - ;; - 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" - checkModuleWorking "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - enablePhpExtension "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" -} - -# 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) - 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 -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 - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - case "$DISTRO" in - alpine) - apk del --purge $PACKAGES_VOLATILE - ;; - debian) - DEBIAN_FRONTEND=noninteractive apt-get remove --purge -y $PACKAGES_VOLATILE - ;; - esac - fi - if test -n "$PACKAGES_PREVIOUS"; then - case "$DISTRO" in - debian) - printf '### RESTORING PREVIOUSLY INSTALLED PACKAGES ###\n' - DEBIAN_FRONTEND=noninteractive apt-get install -qqy --no-install-recommends --no-upgrade $IPE_APTGET_INSTALLOPTIONS $PACKAGES_PREVIOUS - ;; - esac - fi - 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) ;; - *) - 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/apps/php5/5.4.45/build/php/extensions/install.sh b/apps/php5/5.4.45/build/php/extensions/install.sh deleted file mode 100644 index 9cb9b27b..00000000 --- a/apps/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/apps/php5/5.4.45/build/php/extensions/redis-4.1.1.tgz b/apps/php5/5.4.45/build/php/extensions/redis-4.1.1.tgz deleted file mode 100644 index 95d3f743..00000000 Binary files a/apps/php5/5.4.45/build/php/extensions/redis-4.1.1.tgz and /dev/null differ diff --git a/apps/php5/5.4.45/build/php/extensions/xdebug-2.4.1.tgz b/apps/php5/5.4.45/build/php/extensions/xdebug-2.4.1.tgz deleted file mode 100644 index 59afc8f9..00000000 Binary files a/apps/php5/5.4.45/build/php/extensions/xdebug-2.4.1.tgz and /dev/null differ diff --git a/apps/php5/5.4.45/build/php/extensions/zendopcache-7.0.5.tgz b/apps/php5/5.4.45/build/php/extensions/zendopcache-7.0.5.tgz deleted file mode 100644 index aee8761c..00000000 Binary files a/apps/php5/5.4.45/build/php/extensions/zendopcache-7.0.5.tgz and /dev/null differ diff --git a/apps/php5/5.4.45/build/php/php-fpm.conf b/apps/php5/5.4.45/build/php/php-fpm.conf deleted file mode 100644 index 13183589..00000000 --- a/apps/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/apps/php5/5.4.45/build/php/php.ini b/apps/php5/5.4.45/build/php/php.ini deleted file mode 100644 index b04e1640..00000000 --- a/apps/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/apps/php5/5.4.45/conf/php-fpm.conf b/apps/php5/5.4.45/conf/php-fpm.conf deleted file mode 100644 index 13183589..00000000 --- a/apps/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/apps/php5/5.4.45/conf/php.ini b/apps/php5/5.4.45/conf/php.ini deleted file mode 100644 index b6b0aee6..00000000 --- a/apps/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/apps/php5/5.4.45/data.yml b/apps/php5/5.4.45/data.yml deleted file mode 100755 index 0123da18..00000000 --- a/apps/php5/5.4.45/data.yml +++ /dev/null @@ -1,9 +0,0 @@ -additionalProperties: - formFields: - - default: 9000 - envKey: PANEL_APP_PORT_HTTP - labelEn: PHP-FPM Port - labelZh: PHP-FPM 端口 - required: true - rule: paramPort - type: number diff --git a/apps/php5/5.4.45/docker-compose.yml b/apps/php5/5.4.45/docker-compose.yml deleted file mode 100644 index 9173c14e..00000000 --- a/apps/php5/5.4.45/docker-compose.yml +++ /dev/null @@ -1,22 +0,0 @@ -version: '3' -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/apps/php5/5.5.38/build/.env b/apps/php5/5.5.38/build/.env deleted file mode 100644 index 2d7d4ad8..00000000 --- a/apps/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/apps/php5/5.5.38/build/config.json b/apps/php5/5.5.38/build/config.json deleted file mode 100644 index ac01fcfa..00000000 --- a/apps/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": "sg11", - "value": "sourceguardian" - } - ], - "envKey": "PHP_EXTENSIONS", - "edit": true - } - ] -} \ No newline at end of file diff --git a/apps/php5/5.5.38/build/docker-compose.yml b/apps/php5/5.5.38/build/docker-compose.yml deleted file mode 100644 index 76332ace..00000000 --- a/apps/php5/5.5.38/build/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -version: '3' -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/apps/php5/5.5.38/build/php/Dockerfile b/apps/php5/5.5.38/build/php/Dockerfile deleted file mode 100644 index 5f52897a..00000000 --- a/apps/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/apps/php5/5.5.38/build/php/extensions/amqp-1.11.0.tgz b/apps/php5/5.5.38/build/php/extensions/amqp-1.11.0.tgz deleted file mode 100644 index 4b32465b..00000000 Binary files a/apps/php5/5.5.38/build/php/extensions/amqp-1.11.0.tgz and /dev/null differ diff --git a/apps/php5/5.5.38/build/php/extensions/apcu-4.0.8.tgz b/apps/php5/5.5.38/build/php/extensions/apcu-4.0.8.tgz deleted file mode 100644 index c7f75bce..00000000 Binary files a/apps/php5/5.5.38/build/php/extensions/apcu-4.0.8.tgz and /dev/null differ diff --git a/apps/php5/5.5.38/build/php/extensions/event-3.0.8.tgz b/apps/php5/5.5.38/build/php/extensions/event-3.0.8.tgz deleted file mode 100644 index e7a471bb..00000000 Binary files a/apps/php5/5.5.38/build/php/extensions/event-3.0.8.tgz and /dev/null differ diff --git a/apps/php5/5.5.38/build/php/extensions/install-composer.sh b/apps/php5/5.5.38/build/php/extensions/install-composer.sh deleted file mode 100644 index 361cdaf2..00000000 --- a/apps/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/apps/php5/5.5.38/build/php/extensions/install-php-extensions b/apps/php5/5.5.38/build/php/extensions/install-php-extensions deleted file mode 100644 index 164c8d47..00000000 --- a/apps/php5/5.5.38/build/php/extensions/install-php-extensions +++ /dev/null @@ -1,4157 +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.1.28 - -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 wanted PHP module version, resolving it if it starts with '^' -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The version to be used -resolveWantedPHPModuleVersion() { - resolveWantedPHPModuleVersion_raw="$(getWantedPHPModuleVersion "$1")" - resolveWantedPHPModuleVersion_afterCaret="${resolveWantedPHPModuleVersion_raw#^}" - if test "$resolveWantedPHPModuleVersion_raw" = "$resolveWantedPHPModuleVersion_afterCaret"; then - printf '%s' "$resolveWantedPHPModuleVersion_raw" - return - fi - resolveWantedPHPModuleVersion_xml="$(curl -sSLf "http://pecl.php.net/rest/r/$1/allreleases.xml")" - resolveWantedPHPModuleVersion_versions="$(printf '%s' "$resolveWantedPHPModuleVersion_xml" | tr -s ' \t\r\n' ' ' | sed -r 's# *<#\n<#g' | grep '' | sed 's###g' | sed 's# ##g')" - resetIFS - for resolveWantedPHPModuleVersion_version in $resolveWantedPHPModuleVersion_versions; do - resolveWantedPHPModuleVersion_suffix="${resolveWantedPHPModuleVersion_version#$resolveWantedPHPModuleVersion_afterCaret}" - if test "$resolveWantedPHPModuleVersion_version" != "${resolveWantedPHPModuleVersion_version#$resolveWantedPHPModuleVersion_afterCaret.}"; then - # Example: looking for 1.0, found 1.0.1 - printf '%s' "$resolveWantedPHPModuleVersion_version" - return - fi - done - for resolveWantedPHPModuleVersion_version in $resolveWantedPHPModuleVersion_versions; do - resolveWantedPHPModuleVersion_suffix="${resolveWantedPHPModuleVersion_version#$resolveWantedPHPModuleVersion_afterCaret}" - if test "$resolveWantedPHPModuleVersion_version" = "$resolveWantedPHPModuleVersion_suffix"; then - continue - fi - if test -z "$resolveWantedPHPModuleVersion_suffix"; then - # Example: looking for 1.0, found exactly it - printf '%s' "$resolveWantedPHPModuleVersion_version" - return - fi - case "$resolveWantedPHPModuleVersion_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' "$resolveWantedPHPModuleVersion_version" - return - ;; - esac - done - printf 'Unable to find a version of "%s" compatible with "%s"\nAvailable versions are:\n%s\n' "$1" "$resolveWantedPHPModuleVersion_raw" "$resolveWantedPHPModuleVersion_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 - peclStabilityFlagToVersion_url="http://pecl.php.net/rest/r/$1/$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='libssl1.0' - 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_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - ddtrace@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent curl" - 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) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmpdec[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmpdec-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" - ;; - 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 ! 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" - ;; - 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" - ;; - 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" - ;; - 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" - ;; - 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++" - ;; - 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" - 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 - ;; - relay@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs zstd-libs" - if test $DISTRO_MAJMIN_VERSION -ge 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libssl1.1" - fi - ;; - 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" - ;; - 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 lapack libexecinfo openblas" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lapack-dev libexecinfo-dev openblas-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 - ;; - tensor@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapacke libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblapack-dev libopenblas-dev liblapacke-dev" - if test $DISTRO_VERSION_NUMBER -ge 11; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-10" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-10-dev" - elif test $DISTRO_VERSION_NUMBER -ge 10; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-8" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-8-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" - ;; - 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" - ;; - 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 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" - ;; - *) - 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"; 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 -installMicrosoftSqlServerODBC() { - printf 'Installing the Microsoft SQL Server ODBC Driver\n' - case "$DISTRO" in - alpine) - # https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server#alpine17 - 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.9.1.1-1_amd64.apk - else - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/b/9/f/b9f3cce4-3925-46d4-9f46-da08869c6486/msodbcsql18_18.0.1.1-1_amd64.apk - fi - printf '\n' | apk add --allow-untrusted /tmp/src/msodbcsql.apk - rm -rf /tmp/src/msodbcsql.apk - ;; - debian) - # https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server#debian17 - printf -- '- installing the Microsoft APT key\n' - if test $DISTRO_VERSION_NUMBER -ge 11; then - # apt-key is deprecated - curl -sSLf -o /etc/apt/trusted.gpg.d/microsoft.asc https://packages.microsoft.com/keys/microsoft.asc - else - 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 && $DISTRO_VERSION_NUMBER -le 11; then - # On Debian 9 and 11 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; 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_dir="$(getPackageSource https://aomedia.googlesource.com/aom/+archive/v3.3.0.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://code.videolan.org/videolan/dav1d/-/archive/0.9.2/dav1d-0.9.2.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; 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/25d0a5110be796eef47004412baf43333d9ecf26.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/v0.9.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 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 a bundled PHP module given its handle -# -# Arguments: -# $1: the handle of the PHP module -# -# Set: -# UNNEEDED_PACKAGE_LINKS -# -# Output: -# Nothing -installBundledModule() { - printf '### INSTALLING BUNDLED MODULE %s ###\n' "$1" - if test -n "$(getWantedPHPModuleVersion "$1")"; then - printf '### WARNING the module "%s" is bundled with PHP, you can NOT specify a version for it\n' "$1" >&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 - ;; - 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 - ;; - 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 - 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 -} - -# 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="$(resolveWantedPHPModuleVersion "$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 - 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.30.3 - 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 - fi - ;; - decimal) - case "$DISTRO" in - alpine) - if ! test -f /usr/local/lib/libmpdec.so; then - installRemoteModule_src="$(getPackageSource https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-2.5.1.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure --disable-cxx - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - ;; - esac - ;; - ds) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=1.3.0 - 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 - 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.20/gearmand-1.1.20.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=71b5f9001512e16d3cf4657b517e8a051d6ef36f - 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"; then - # See https://github.com/protocolbuffers/protobuf/issues/10619 - installRemoteModule_version=1.55.0 - 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 - ;; - 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 - ;; - 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 - fi - 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 - ;; - oauth) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.3 - fi - 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 - 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 - # 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 - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '22.8.0') -ge 0; then - #enable hook curl support? - addConfigureOption enable-hook-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - else - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '4.8.0') -ge 0; then - # enable postgres support? - addConfigureOption with-postgres yes - fi - fi - ;; - opentelemetry) - 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 - ;; - 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 -le 506; then - installRemoteModule_version=3.12.4 - else - # See https://github.com/protocolbuffers/protobuf/issues/10619 - installRemoteModule_version=3.23.2 - 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 - 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' - 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 - ;; - 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 - installRemoteModule_version=0.9.0 - 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 -le 506; then - installRemoteModule_version=2.4.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.13 - 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 - 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 - 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 -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 yes - # 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 yes - # 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 yes - # 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 yes - 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 - ;; - 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 - ;; - 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" - checkModuleWorking "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - enablePhpExtension "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" -} - -# 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) - 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 -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 - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - case "$DISTRO" in - alpine) - apk del --purge $PACKAGES_VOLATILE - ;; - debian) - DEBIAN_FRONTEND=noninteractive apt-get remove --purge -y $PACKAGES_VOLATILE - ;; - esac - fi - if test -n "$PACKAGES_PREVIOUS"; then - case "$DISTRO" in - debian) - printf '### RESTORING PREVIOUSLY INSTALLED PACKAGES ###\n' - DEBIAN_FRONTEND=noninteractive apt-get install -qqy --no-install-recommends --no-upgrade $IPE_APTGET_INSTALLOPTIONS $PACKAGES_PREVIOUS - ;; - esac - fi - 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) ;; - *) - 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/apps/php5/5.5.38/build/php/extensions/install.sh b/apps/php5/5.5.38/build/php/extensions/install.sh deleted file mode 100644 index a0c4956a..00000000 --- a/apps/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/apps/php5/5.5.38/build/php/extensions/memcache-2.2.7.tgz b/apps/php5/5.5.38/build/php/extensions/memcache-2.2.7.tgz deleted file mode 100644 index a3c45341..00000000 Binary files a/apps/php5/5.5.38/build/php/extensions/memcache-2.2.7.tgz and /dev/null differ diff --git a/apps/php5/5.5.38/build/php/extensions/mongodb-1.6.0.tgz b/apps/php5/5.5.38/build/php/extensions/mongodb-1.6.0.tgz deleted file mode 100644 index eb98c818..00000000 Binary files a/apps/php5/5.5.38/build/php/extensions/mongodb-1.6.0.tgz and /dev/null differ diff --git a/apps/php5/5.5.38/build/php/extensions/redis-4.3.0.tgz b/apps/php5/5.5.38/build/php/extensions/redis-4.3.0.tgz deleted file mode 100644 index c4a9ffcf..00000000 Binary files a/apps/php5/5.5.38/build/php/extensions/redis-4.3.0.tgz and /dev/null differ diff --git a/apps/php5/5.5.38/build/php/extensions/swoole-2.0.11.tgz b/apps/php5/5.5.38/build/php/extensions/swoole-2.0.11.tgz deleted file mode 100644 index a155450c..00000000 Binary files a/apps/php5/5.5.38/build/php/extensions/swoole-2.0.11.tgz and /dev/null differ diff --git a/apps/php5/5.5.38/build/php/extensions/xdebug-2.5.5.tgz b/apps/php5/5.5.38/build/php/extensions/xdebug-2.5.5.tgz deleted file mode 100644 index d62c7ff6..00000000 Binary files a/apps/php5/5.5.38/build/php/extensions/xdebug-2.5.5.tgz and /dev/null differ diff --git a/apps/php5/5.5.38/build/php/extensions/xhprof-0.9.4.tgz b/apps/php5/5.5.38/build/php/extensions/xhprof-0.9.4.tgz deleted file mode 100644 index 12711791..00000000 Binary files a/apps/php5/5.5.38/build/php/extensions/xhprof-0.9.4.tgz and /dev/null differ diff --git a/apps/php5/5.5.38/build/php/extensions/yaf-3.0.9.tgz b/apps/php5/5.5.38/build/php/extensions/yaf-3.0.9.tgz deleted file mode 100644 index 492c1fdc..00000000 Binary files a/apps/php5/5.5.38/build/php/extensions/yaf-3.0.9.tgz and /dev/null differ diff --git a/apps/php5/5.5.38/build/php/php-fpm.conf b/apps/php5/5.5.38/build/php/php-fpm.conf deleted file mode 100644 index 13183589..00000000 --- a/apps/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/apps/php5/5.5.38/build/php/php.ini b/apps/php5/5.5.38/build/php/php.ini deleted file mode 100644 index b04e1640..00000000 --- a/apps/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/apps/php5/5.5.38/conf/php-fpm.conf b/apps/php5/5.5.38/conf/php-fpm.conf deleted file mode 100644 index 13183589..00000000 --- a/apps/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/apps/php5/5.5.38/conf/php.ini b/apps/php5/5.5.38/conf/php.ini deleted file mode 100644 index b6b0aee6..00000000 --- a/apps/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/apps/php5/5.5.38/data.yml b/apps/php5/5.5.38/data.yml deleted file mode 100755 index 0123da18..00000000 --- a/apps/php5/5.5.38/data.yml +++ /dev/null @@ -1,9 +0,0 @@ -additionalProperties: - formFields: - - default: 9000 - envKey: PANEL_APP_PORT_HTTP - labelEn: PHP-FPM Port - labelZh: PHP-FPM 端口 - required: true - rule: paramPort - type: number diff --git a/apps/php5/5.5.38/docker-compose.yml b/apps/php5/5.5.38/docker-compose.yml deleted file mode 100644 index 9173c14e..00000000 --- a/apps/php5/5.5.38/docker-compose.yml +++ /dev/null @@ -1,22 +0,0 @@ -version: '3' -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/apps/php5/5.6.40/build/.env b/apps/php5/5.6.40/build/.env deleted file mode 100644 index c2804904..00000000 --- a/apps/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/apps/php5/5.6.40/build/config.json b/apps/php5/5.6.40/build/config.json deleted file mode 100644 index ac01fcfa..00000000 --- a/apps/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": "sg11", - "value": "sourceguardian" - } - ], - "envKey": "PHP_EXTENSIONS", - "edit": true - } - ] -} \ No newline at end of file diff --git a/apps/php5/5.6.40/build/docker-compose.yml b/apps/php5/5.6.40/build/docker-compose.yml deleted file mode 100644 index 4237af99..00000000 --- a/apps/php5/5.6.40/build/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -version: '3' -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/apps/php5/5.6.40/build/php/Dockerfile b/apps/php5/5.6.40/build/php/Dockerfile deleted file mode 100644 index ba8fcdf8..00000000 --- a/apps/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/apps/php5/5.6.40/build/php/extensions/amqp-1.11.0.tgz b/apps/php5/5.6.40/build/php/extensions/amqp-1.11.0.tgz deleted file mode 100644 index 4b32465b..00000000 Binary files a/apps/php5/5.6.40/build/php/extensions/amqp-1.11.0.tgz and /dev/null differ diff --git a/apps/php5/5.6.40/build/php/extensions/apcu-4.0.8.tgz b/apps/php5/5.6.40/build/php/extensions/apcu-4.0.8.tgz deleted file mode 100644 index c7f75bce..00000000 Binary files a/apps/php5/5.6.40/build/php/extensions/apcu-4.0.8.tgz and /dev/null differ diff --git a/apps/php5/5.6.40/build/php/extensions/event-3.0.8.tgz b/apps/php5/5.6.40/build/php/extensions/event-3.0.8.tgz deleted file mode 100644 index e7a471bb..00000000 Binary files a/apps/php5/5.6.40/build/php/extensions/event-3.0.8.tgz and /dev/null differ diff --git a/apps/php5/5.6.40/build/php/extensions/install-composer.sh b/apps/php5/5.6.40/build/php/extensions/install-composer.sh deleted file mode 100644 index 34074732..00000000 --- a/apps/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/apps/php5/5.6.40/build/php/extensions/install-php-extensions b/apps/php5/5.6.40/build/php/extensions/install-php-extensions deleted file mode 100644 index 164c8d47..00000000 --- a/apps/php5/5.6.40/build/php/extensions/install-php-extensions +++ /dev/null @@ -1,4157 +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.1.28 - -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 wanted PHP module version, resolving it if it starts with '^' -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The version to be used -resolveWantedPHPModuleVersion() { - resolveWantedPHPModuleVersion_raw="$(getWantedPHPModuleVersion "$1")" - resolveWantedPHPModuleVersion_afterCaret="${resolveWantedPHPModuleVersion_raw#^}" - if test "$resolveWantedPHPModuleVersion_raw" = "$resolveWantedPHPModuleVersion_afterCaret"; then - printf '%s' "$resolveWantedPHPModuleVersion_raw" - return - fi - resolveWantedPHPModuleVersion_xml="$(curl -sSLf "http://pecl.php.net/rest/r/$1/allreleases.xml")" - resolveWantedPHPModuleVersion_versions="$(printf '%s' "$resolveWantedPHPModuleVersion_xml" | tr -s ' \t\r\n' ' ' | sed -r 's# *<#\n<#g' | grep '' | sed 's###g' | sed 's# ##g')" - resetIFS - for resolveWantedPHPModuleVersion_version in $resolveWantedPHPModuleVersion_versions; do - resolveWantedPHPModuleVersion_suffix="${resolveWantedPHPModuleVersion_version#$resolveWantedPHPModuleVersion_afterCaret}" - if test "$resolveWantedPHPModuleVersion_version" != "${resolveWantedPHPModuleVersion_version#$resolveWantedPHPModuleVersion_afterCaret.}"; then - # Example: looking for 1.0, found 1.0.1 - printf '%s' "$resolveWantedPHPModuleVersion_version" - return - fi - done - for resolveWantedPHPModuleVersion_version in $resolveWantedPHPModuleVersion_versions; do - resolveWantedPHPModuleVersion_suffix="${resolveWantedPHPModuleVersion_version#$resolveWantedPHPModuleVersion_afterCaret}" - if test "$resolveWantedPHPModuleVersion_version" = "$resolveWantedPHPModuleVersion_suffix"; then - continue - fi - if test -z "$resolveWantedPHPModuleVersion_suffix"; then - # Example: looking for 1.0, found exactly it - printf '%s' "$resolveWantedPHPModuleVersion_version" - return - fi - case "$resolveWantedPHPModuleVersion_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' "$resolveWantedPHPModuleVersion_version" - return - ;; - esac - done - printf 'Unable to find a version of "%s" compatible with "%s"\nAvailable versions are:\n%s\n' "$1" "$resolveWantedPHPModuleVersion_raw" "$resolveWantedPHPModuleVersion_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 - peclStabilityFlagToVersion_url="http://pecl.php.net/rest/r/$1/$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='libssl1.0' - 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_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - ddtrace@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent curl" - 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) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmpdec[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmpdec-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" - ;; - 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 ! 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" - ;; - 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" - ;; - 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" - ;; - 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" - ;; - 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++" - ;; - 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" - 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 - ;; - relay@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs zstd-libs" - if test $DISTRO_MAJMIN_VERSION -ge 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libssl1.1" - fi - ;; - 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" - ;; - 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 lapack libexecinfo openblas" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lapack-dev libexecinfo-dev openblas-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 - ;; - tensor@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapacke libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblapack-dev libopenblas-dev liblapacke-dev" - if test $DISTRO_VERSION_NUMBER -ge 11; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-10" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-10-dev" - elif test $DISTRO_VERSION_NUMBER -ge 10; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-8" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-8-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" - ;; - 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" - ;; - 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 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" - ;; - *) - 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"; 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 -installMicrosoftSqlServerODBC() { - printf 'Installing the Microsoft SQL Server ODBC Driver\n' - case "$DISTRO" in - alpine) - # https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server#alpine17 - 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.9.1.1-1_amd64.apk - else - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/b/9/f/b9f3cce4-3925-46d4-9f46-da08869c6486/msodbcsql18_18.0.1.1-1_amd64.apk - fi - printf '\n' | apk add --allow-untrusted /tmp/src/msodbcsql.apk - rm -rf /tmp/src/msodbcsql.apk - ;; - debian) - # https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server#debian17 - printf -- '- installing the Microsoft APT key\n' - if test $DISTRO_VERSION_NUMBER -ge 11; then - # apt-key is deprecated - curl -sSLf -o /etc/apt/trusted.gpg.d/microsoft.asc https://packages.microsoft.com/keys/microsoft.asc - else - 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 && $DISTRO_VERSION_NUMBER -le 11; then - # On Debian 9 and 11 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; 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_dir="$(getPackageSource https://aomedia.googlesource.com/aom/+archive/v3.3.0.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://code.videolan.org/videolan/dav1d/-/archive/0.9.2/dav1d-0.9.2.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; 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/25d0a5110be796eef47004412baf43333d9ecf26.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/v0.9.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 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 a bundled PHP module given its handle -# -# Arguments: -# $1: the handle of the PHP module -# -# Set: -# UNNEEDED_PACKAGE_LINKS -# -# Output: -# Nothing -installBundledModule() { - printf '### INSTALLING BUNDLED MODULE %s ###\n' "$1" - if test -n "$(getWantedPHPModuleVersion "$1")"; then - printf '### WARNING the module "%s" is bundled with PHP, you can NOT specify a version for it\n' "$1" >&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 - ;; - 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 - ;; - 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 - 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 -} - -# 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="$(resolveWantedPHPModuleVersion "$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 - 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.30.3 - 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 - fi - ;; - decimal) - case "$DISTRO" in - alpine) - if ! test -f /usr/local/lib/libmpdec.so; then - installRemoteModule_src="$(getPackageSource https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-2.5.1.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure --disable-cxx - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - ;; - esac - ;; - ds) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=1.3.0 - 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 - 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.20/gearmand-1.1.20.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=71b5f9001512e16d3cf4657b517e8a051d6ef36f - 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"; then - # See https://github.com/protocolbuffers/protobuf/issues/10619 - installRemoteModule_version=1.55.0 - 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 - ;; - 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 - ;; - 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 - fi - 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 - ;; - oauth) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.3 - fi - 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 - 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 - # 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 - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '22.8.0') -ge 0; then - #enable hook curl support? - addConfigureOption enable-hook-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - else - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '4.8.0') -ge 0; then - # enable postgres support? - addConfigureOption with-postgres yes - fi - fi - ;; - opentelemetry) - 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 - ;; - 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 -le 506; then - installRemoteModule_version=3.12.4 - else - # See https://github.com/protocolbuffers/protobuf/issues/10619 - installRemoteModule_version=3.23.2 - 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 - 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' - 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 - ;; - 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 - installRemoteModule_version=0.9.0 - 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 -le 506; then - installRemoteModule_version=2.4.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.13 - 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 - 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 - 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 -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 yes - # 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 yes - # 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 yes - # 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 yes - 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 - ;; - 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 - ;; - 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" - checkModuleWorking "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - enablePhpExtension "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" -} - -# 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) - 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 -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 - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - case "$DISTRO" in - alpine) - apk del --purge $PACKAGES_VOLATILE - ;; - debian) - DEBIAN_FRONTEND=noninteractive apt-get remove --purge -y $PACKAGES_VOLATILE - ;; - esac - fi - if test -n "$PACKAGES_PREVIOUS"; then - case "$DISTRO" in - debian) - printf '### RESTORING PREVIOUSLY INSTALLED PACKAGES ###\n' - DEBIAN_FRONTEND=noninteractive apt-get install -qqy --no-install-recommends --no-upgrade $IPE_APTGET_INSTALLOPTIONS $PACKAGES_PREVIOUS - ;; - esac - fi - 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) ;; - *) - 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/apps/php5/5.6.40/build/php/extensions/install.sh b/apps/php5/5.6.40/build/php/extensions/install.sh deleted file mode 100644 index c3d3f4e7..00000000 --- a/apps/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/apps/php5/5.6.40/build/php/extensions/memcache-2.2.7.tgz b/apps/php5/5.6.40/build/php/extensions/memcache-2.2.7.tgz deleted file mode 100644 index a3c45341..00000000 Binary files a/apps/php5/5.6.40/build/php/extensions/memcache-2.2.7.tgz and /dev/null differ diff --git a/apps/php5/5.6.40/build/php/extensions/mongodb-1.6.0.tgz b/apps/php5/5.6.40/build/php/extensions/mongodb-1.6.0.tgz deleted file mode 100644 index eb98c818..00000000 Binary files a/apps/php5/5.6.40/build/php/extensions/mongodb-1.6.0.tgz and /dev/null differ diff --git a/apps/php5/5.6.40/build/php/extensions/redis-4.3.0.tgz b/apps/php5/5.6.40/build/php/extensions/redis-4.3.0.tgz deleted file mode 100644 index c4a9ffcf..00000000 Binary files a/apps/php5/5.6.40/build/php/extensions/redis-4.3.0.tgz and /dev/null differ diff --git a/apps/php5/5.6.40/build/php/extensions/swoole-2.0.11.tgz b/apps/php5/5.6.40/build/php/extensions/swoole-2.0.11.tgz deleted file mode 100644 index a155450c..00000000 Binary files a/apps/php5/5.6.40/build/php/extensions/swoole-2.0.11.tgz and /dev/null differ diff --git a/apps/php5/5.6.40/build/php/extensions/xdebug-2.5.5.tgz b/apps/php5/5.6.40/build/php/extensions/xdebug-2.5.5.tgz deleted file mode 100644 index d62c7ff6..00000000 Binary files a/apps/php5/5.6.40/build/php/extensions/xdebug-2.5.5.tgz and /dev/null differ diff --git a/apps/php5/5.6.40/build/php/extensions/xhprof-0.9.4.tgz b/apps/php5/5.6.40/build/php/extensions/xhprof-0.9.4.tgz deleted file mode 100644 index 12711791..00000000 Binary files a/apps/php5/5.6.40/build/php/extensions/xhprof-0.9.4.tgz and /dev/null differ diff --git a/apps/php5/5.6.40/build/php/extensions/yaf-3.0.9.tgz b/apps/php5/5.6.40/build/php/extensions/yaf-3.0.9.tgz deleted file mode 100644 index 492c1fdc..00000000 Binary files a/apps/php5/5.6.40/build/php/extensions/yaf-3.0.9.tgz and /dev/null differ diff --git a/apps/php5/5.6.40/build/php/php-fpm.conf b/apps/php5/5.6.40/build/php/php-fpm.conf deleted file mode 100644 index 13183589..00000000 --- a/apps/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/apps/php5/5.6.40/build/php/php.ini b/apps/php5/5.6.40/build/php/php.ini deleted file mode 100644 index b04e1640..00000000 --- a/apps/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/apps/php5/5.6.40/conf/php-fpm.conf b/apps/php5/5.6.40/conf/php-fpm.conf deleted file mode 100644 index 13183589..00000000 --- a/apps/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/apps/php5/5.6.40/conf/php.ini b/apps/php5/5.6.40/conf/php.ini deleted file mode 100644 index b6b0aee6..00000000 --- a/apps/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/apps/php5/5.6.40/data.yml b/apps/php5/5.6.40/data.yml deleted file mode 100755 index 0123da18..00000000 --- a/apps/php5/5.6.40/data.yml +++ /dev/null @@ -1,9 +0,0 @@ -additionalProperties: - formFields: - - default: 9000 - envKey: PANEL_APP_PORT_HTTP - labelEn: PHP-FPM Port - labelZh: PHP-FPM 端口 - required: true - rule: paramPort - type: number diff --git a/apps/php5/5.6.40/docker-compose.yml b/apps/php5/5.6.40/docker-compose.yml deleted file mode 100644 index 9173c14e..00000000 --- a/apps/php5/5.6.40/docker-compose.yml +++ /dev/null @@ -1,22 +0,0 @@ -version: '3' -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/apps/php5/README.md b/apps/php5/README.md deleted file mode 100644 index b7d17a6e..00000000 --- a/apps/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/apps/php5/data.yml b/apps/php5/data.yml deleted file mode 100755 index b4b64e87..00000000 --- a/apps/php5/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: PHP 5 -tags: - - 运行环境 -title: PHP5 运行环境 -type: 运行环境 -description: PHP5 运行环境 -additionalProperties: - key: php5 - name: PHP 5 - tags: - - Runtime - shortDescZh: PHP5 运行环境 - shortDescEn: PHP5 Runtime - 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 diff --git a/apps/php5/logo.png b/apps/php5/logo.png deleted file mode 100644 index cfa7782d..00000000 Binary files a/apps/php5/logo.png and /dev/null differ diff --git a/apps/php7/7.0.33/build/.env b/apps/php7/7.0.33/build/.env deleted file mode 100644 index fcdd0f44..00000000 --- a/apps/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/apps/php7/7.0.33/build/config.json b/apps/php7/7.0.33/build/config.json deleted file mode 100644 index bda2e4eb..00000000 --- a/apps/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": "sg11", - "value": "sourceguardian" - }, - { - "label": "imagick", - "value": "imagick" - } - ], - "envKey": "PHP_EXTENSIONS", - "edit": true - } - ] -} \ No newline at end of file diff --git a/apps/php7/7.0.33/build/docker-compose.yml b/apps/php7/7.0.33/build/docker-compose.yml deleted file mode 100644 index 76332ace..00000000 --- a/apps/php7/7.0.33/build/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -version: '3' -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/apps/php7/7.0.33/build/php/Dockerfile b/apps/php7/7.0.33/build/php/Dockerfile deleted file mode 100644 index 7203576e..00000000 --- a/apps/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/apps/php7/7.0.33/build/php/extensions/amqp-1.10.2.tgz b/apps/php7/7.0.33/build/php/extensions/amqp-1.10.2.tgz deleted file mode 100644 index 7bcd30d0..00000000 Binary files a/apps/php7/7.0.33/build/php/extensions/amqp-1.10.2.tgz and /dev/null differ diff --git a/apps/php7/7.0.33/build/php/extensions/apcu-5.1.17.tgz b/apps/php7/7.0.33/build/php/extensions/apcu-5.1.17.tgz deleted file mode 100644 index c15ca116..00000000 Binary files a/apps/php7/7.0.33/build/php/extensions/apcu-5.1.17.tgz and /dev/null differ diff --git a/apps/php7/7.0.33/build/php/extensions/event-3.0.8.tgz b/apps/php7/7.0.33/build/php/extensions/event-3.0.8.tgz deleted file mode 100644 index e7a471bb..00000000 Binary files a/apps/php7/7.0.33/build/php/extensions/event-3.0.8.tgz and /dev/null differ diff --git a/apps/php7/7.0.33/build/php/extensions/install-composer.sh b/apps/php7/7.0.33/build/php/extensions/install-composer.sh deleted file mode 100644 index 34074732..00000000 --- a/apps/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/apps/php7/7.0.33/build/php/extensions/install-php-extensions b/apps/php7/7.0.33/build/php/extensions/install-php-extensions deleted file mode 100644 index 164c8d47..00000000 --- a/apps/php7/7.0.33/build/php/extensions/install-php-extensions +++ /dev/null @@ -1,4157 +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.1.28 - -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 wanted PHP module version, resolving it if it starts with '^' -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The version to be used -resolveWantedPHPModuleVersion() { - resolveWantedPHPModuleVersion_raw="$(getWantedPHPModuleVersion "$1")" - resolveWantedPHPModuleVersion_afterCaret="${resolveWantedPHPModuleVersion_raw#^}" - if test "$resolveWantedPHPModuleVersion_raw" = "$resolveWantedPHPModuleVersion_afterCaret"; then - printf '%s' "$resolveWantedPHPModuleVersion_raw" - return - fi - resolveWantedPHPModuleVersion_xml="$(curl -sSLf "http://pecl.php.net/rest/r/$1/allreleases.xml")" - resolveWantedPHPModuleVersion_versions="$(printf '%s' "$resolveWantedPHPModuleVersion_xml" | tr -s ' \t\r\n' ' ' | sed -r 's# *<#\n<#g' | grep '' | sed 's###g' | sed 's# ##g')" - resetIFS - for resolveWantedPHPModuleVersion_version in $resolveWantedPHPModuleVersion_versions; do - resolveWantedPHPModuleVersion_suffix="${resolveWantedPHPModuleVersion_version#$resolveWantedPHPModuleVersion_afterCaret}" - if test "$resolveWantedPHPModuleVersion_version" != "${resolveWantedPHPModuleVersion_version#$resolveWantedPHPModuleVersion_afterCaret.}"; then - # Example: looking for 1.0, found 1.0.1 - printf '%s' "$resolveWantedPHPModuleVersion_version" - return - fi - done - for resolveWantedPHPModuleVersion_version in $resolveWantedPHPModuleVersion_versions; do - resolveWantedPHPModuleVersion_suffix="${resolveWantedPHPModuleVersion_version#$resolveWantedPHPModuleVersion_afterCaret}" - if test "$resolveWantedPHPModuleVersion_version" = "$resolveWantedPHPModuleVersion_suffix"; then - continue - fi - if test -z "$resolveWantedPHPModuleVersion_suffix"; then - # Example: looking for 1.0, found exactly it - printf '%s' "$resolveWantedPHPModuleVersion_version" - return - fi - case "$resolveWantedPHPModuleVersion_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' "$resolveWantedPHPModuleVersion_version" - return - ;; - esac - done - printf 'Unable to find a version of "%s" compatible with "%s"\nAvailable versions are:\n%s\n' "$1" "$resolveWantedPHPModuleVersion_raw" "$resolveWantedPHPModuleVersion_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 - peclStabilityFlagToVersion_url="http://pecl.php.net/rest/r/$1/$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='libssl1.0' - 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_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - ddtrace@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent curl" - 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) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmpdec[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmpdec-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" - ;; - 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 ! 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" - ;; - 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" - ;; - 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" - ;; - 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" - ;; - 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++" - ;; - 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" - 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 - ;; - relay@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs zstd-libs" - if test $DISTRO_MAJMIN_VERSION -ge 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libssl1.1" - fi - ;; - 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" - ;; - 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 lapack libexecinfo openblas" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lapack-dev libexecinfo-dev openblas-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 - ;; - tensor@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapacke libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblapack-dev libopenblas-dev liblapacke-dev" - if test $DISTRO_VERSION_NUMBER -ge 11; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-10" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-10-dev" - elif test $DISTRO_VERSION_NUMBER -ge 10; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-8" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-8-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" - ;; - 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" - ;; - 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 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" - ;; - *) - 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"; 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 -installMicrosoftSqlServerODBC() { - printf 'Installing the Microsoft SQL Server ODBC Driver\n' - case "$DISTRO" in - alpine) - # https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server#alpine17 - 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.9.1.1-1_amd64.apk - else - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/b/9/f/b9f3cce4-3925-46d4-9f46-da08869c6486/msodbcsql18_18.0.1.1-1_amd64.apk - fi - printf '\n' | apk add --allow-untrusted /tmp/src/msodbcsql.apk - rm -rf /tmp/src/msodbcsql.apk - ;; - debian) - # https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server#debian17 - printf -- '- installing the Microsoft APT key\n' - if test $DISTRO_VERSION_NUMBER -ge 11; then - # apt-key is deprecated - curl -sSLf -o /etc/apt/trusted.gpg.d/microsoft.asc https://packages.microsoft.com/keys/microsoft.asc - else - 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 && $DISTRO_VERSION_NUMBER -le 11; then - # On Debian 9 and 11 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; 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_dir="$(getPackageSource https://aomedia.googlesource.com/aom/+archive/v3.3.0.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://code.videolan.org/videolan/dav1d/-/archive/0.9.2/dav1d-0.9.2.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; 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/25d0a5110be796eef47004412baf43333d9ecf26.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/v0.9.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 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 a bundled PHP module given its handle -# -# Arguments: -# $1: the handle of the PHP module -# -# Set: -# UNNEEDED_PACKAGE_LINKS -# -# Output: -# Nothing -installBundledModule() { - printf '### INSTALLING BUNDLED MODULE %s ###\n' "$1" - if test -n "$(getWantedPHPModuleVersion "$1")"; then - printf '### WARNING the module "%s" is bundled with PHP, you can NOT specify a version for it\n' "$1" >&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 - ;; - 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 - ;; - 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 - 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 -} - -# 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="$(resolveWantedPHPModuleVersion "$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 - 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.30.3 - 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 - fi - ;; - decimal) - case "$DISTRO" in - alpine) - if ! test -f /usr/local/lib/libmpdec.so; then - installRemoteModule_src="$(getPackageSource https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-2.5.1.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure --disable-cxx - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - ;; - esac - ;; - ds) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=1.3.0 - 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 - 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.20/gearmand-1.1.20.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=71b5f9001512e16d3cf4657b517e8a051d6ef36f - 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"; then - # See https://github.com/protocolbuffers/protobuf/issues/10619 - installRemoteModule_version=1.55.0 - 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 - ;; - 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 - ;; - 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 - fi - 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 - ;; - oauth) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.3 - fi - 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 - 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 - # 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 - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '22.8.0') -ge 0; then - #enable hook curl support? - addConfigureOption enable-hook-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - else - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '4.8.0') -ge 0; then - # enable postgres support? - addConfigureOption with-postgres yes - fi - fi - ;; - opentelemetry) - 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 - ;; - 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 -le 506; then - installRemoteModule_version=3.12.4 - else - # See https://github.com/protocolbuffers/protobuf/issues/10619 - installRemoteModule_version=3.23.2 - 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 - 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' - 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 - ;; - 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 - installRemoteModule_version=0.9.0 - 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 -le 506; then - installRemoteModule_version=2.4.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.13 - 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 - 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 - 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 -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 yes - # 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 yes - # 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 yes - # 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 yes - 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 - ;; - 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 - ;; - 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" - checkModuleWorking "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - enablePhpExtension "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" -} - -# 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) - 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 -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 - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - case "$DISTRO" in - alpine) - apk del --purge $PACKAGES_VOLATILE - ;; - debian) - DEBIAN_FRONTEND=noninteractive apt-get remove --purge -y $PACKAGES_VOLATILE - ;; - esac - fi - if test -n "$PACKAGES_PREVIOUS"; then - case "$DISTRO" in - debian) - printf '### RESTORING PREVIOUSLY INSTALLED PACKAGES ###\n' - DEBIAN_FRONTEND=noninteractive apt-get install -qqy --no-install-recommends --no-upgrade $IPE_APTGET_INSTALLOPTIONS $PACKAGES_PREVIOUS - ;; - esac - fi - 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) ;; - *) - 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/apps/php7/7.0.33/build/php/extensions/install.sh b/apps/php7/7.0.33/build/php/extensions/install.sh deleted file mode 100644 index 1507b0ed..00000000 --- a/apps/php7/7.0.33/build/php/extensions/install.sh +++ /dev/null @@ -1,741 +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 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 ----------" - install-php-extensions sourceguardian -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_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 7 0 - 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 >= 7.0.0, installed version is ${PHP_VERSION}" - fi -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/apps/php7/7.0.33/build/php/extensions/memcache-2.2.6.tgz b/apps/php7/7.0.33/build/php/extensions/memcache-2.2.6.tgz deleted file mode 100644 index 841d0296..00000000 Binary files a/apps/php7/7.0.33/build/php/extensions/memcache-2.2.6.tgz and /dev/null differ diff --git a/apps/php7/7.0.33/build/php/extensions/memcache-4.0.5.2.tgz b/apps/php7/7.0.33/build/php/extensions/memcache-4.0.5.2.tgz deleted file mode 100644 index 1f7d370b..00000000 Binary files a/apps/php7/7.0.33/build/php/extensions/memcache-4.0.5.2.tgz and /dev/null differ diff --git a/apps/php7/7.0.33/build/php/extensions/mongodb-1.7.4.tgz b/apps/php7/7.0.33/build/php/extensions/mongodb-1.7.4.tgz deleted file mode 100644 index 94528560..00000000 Binary files a/apps/php7/7.0.33/build/php/extensions/mongodb-1.7.4.tgz and /dev/null differ diff --git a/apps/php7/7.0.33/build/php/extensions/redis-5.3.7.tgz b/apps/php7/7.0.33/build/php/extensions/redis-5.3.7.tgz deleted file mode 100644 index db2187b4..00000000 Binary files a/apps/php7/7.0.33/build/php/extensions/redis-5.3.7.tgz and /dev/null differ diff --git a/apps/php7/7.0.33/build/php/extensions/swoole-2.0.11.tgz b/apps/php7/7.0.33/build/php/extensions/swoole-2.0.11.tgz deleted file mode 100644 index a155450c..00000000 Binary files a/apps/php7/7.0.33/build/php/extensions/swoole-2.0.11.tgz and /dev/null differ diff --git a/apps/php7/7.0.33/build/php/extensions/swoole-4.8.11.tgz b/apps/php7/7.0.33/build/php/extensions/swoole-4.8.11.tgz deleted file mode 100644 index 01674cdc..00000000 Binary files a/apps/php7/7.0.33/build/php/extensions/swoole-4.8.11.tgz and /dev/null differ diff --git a/apps/php7/7.0.33/build/php/extensions/xdebug-2.5.5.tgz b/apps/php7/7.0.33/build/php/extensions/xdebug-2.5.5.tgz deleted file mode 100644 index d62c7ff6..00000000 Binary files a/apps/php7/7.0.33/build/php/extensions/xdebug-2.5.5.tgz and /dev/null differ diff --git a/apps/php7/7.0.33/build/php/extensions/xdebug-2.6.1.tgz b/apps/php7/7.0.33/build/php/extensions/xdebug-2.6.1.tgz deleted file mode 100644 index c756fba3..00000000 Binary files a/apps/php7/7.0.33/build/php/extensions/xdebug-2.6.1.tgz and /dev/null differ diff --git a/apps/php7/7.0.33/build/php/extensions/xdebug-2.9.2.tgz b/apps/php7/7.0.33/build/php/extensions/xdebug-2.9.2.tgz deleted file mode 100644 index 8131fff3..00000000 Binary files a/apps/php7/7.0.33/build/php/extensions/xdebug-2.9.2.tgz and /dev/null differ diff --git a/apps/php7/7.0.33/build/php/extensions/xhprof-2.2.0.tgz b/apps/php7/7.0.33/build/php/extensions/xhprof-2.2.0.tgz deleted file mode 100644 index 2614df31..00000000 Binary files a/apps/php7/7.0.33/build/php/extensions/xhprof-2.2.0.tgz and /dev/null differ diff --git a/apps/php7/7.0.33/build/php/extensions/yaf-2.3.5.tgz b/apps/php7/7.0.33/build/php/extensions/yaf-2.3.5.tgz deleted file mode 100644 index d965a0f1..00000000 Binary files a/apps/php7/7.0.33/build/php/extensions/yaf-2.3.5.tgz and /dev/null differ diff --git a/apps/php7/7.0.33/build/php/php-fpm.conf b/apps/php7/7.0.33/build/php/php-fpm.conf deleted file mode 100644 index 13183589..00000000 --- a/apps/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/apps/php7/7.0.33/build/php/php.ini b/apps/php7/7.0.33/build/php/php.ini deleted file mode 100644 index b6b0aee6..00000000 --- a/apps/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/apps/php7/7.0.33/conf/php-fpm.conf b/apps/php7/7.0.33/conf/php-fpm.conf deleted file mode 100644 index 13183589..00000000 --- a/apps/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/apps/php7/7.0.33/conf/php.ini b/apps/php7/7.0.33/conf/php.ini deleted file mode 100644 index b6b0aee6..00000000 --- a/apps/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/apps/php7/7.0.33/data.yml b/apps/php7/7.0.33/data.yml deleted file mode 100755 index 0123da18..00000000 --- a/apps/php7/7.0.33/data.yml +++ /dev/null @@ -1,9 +0,0 @@ -additionalProperties: - formFields: - - default: 9000 - envKey: PANEL_APP_PORT_HTTP - labelEn: PHP-FPM Port - labelZh: PHP-FPM 端口 - required: true - rule: paramPort - type: number diff --git a/apps/php7/7.0.33/docker-compose.yml b/apps/php7/7.0.33/docker-compose.yml deleted file mode 100644 index 9173c14e..00000000 --- a/apps/php7/7.0.33/docker-compose.yml +++ /dev/null @@ -1,22 +0,0 @@ -version: '3' -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/apps/php7/7.1.33/build/.env b/apps/php7/7.1.33/build/.env deleted file mode 100644 index 876ff24f..00000000 --- a/apps/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/apps/php7/7.1.33/build/config.json b/apps/php7/7.1.33/build/config.json deleted file mode 100644 index bda2e4eb..00000000 --- a/apps/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": "sg11", - "value": "sourceguardian" - }, - { - "label": "imagick", - "value": "imagick" - } - ], - "envKey": "PHP_EXTENSIONS", - "edit": true - } - ] -} \ No newline at end of file diff --git a/apps/php7/7.1.33/build/docker-compose.yml b/apps/php7/7.1.33/build/docker-compose.yml deleted file mode 100644 index 76332ace..00000000 --- a/apps/php7/7.1.33/build/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -version: '3' -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/apps/php7/7.1.33/build/php/Dockerfile b/apps/php7/7.1.33/build/php/Dockerfile deleted file mode 100644 index 7203576e..00000000 --- a/apps/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/apps/php7/7.1.33/build/php/extensions/amqp-1.10.2.tgz b/apps/php7/7.1.33/build/php/extensions/amqp-1.10.2.tgz deleted file mode 100644 index 7bcd30d0..00000000 Binary files a/apps/php7/7.1.33/build/php/extensions/amqp-1.10.2.tgz and /dev/null differ diff --git a/apps/php7/7.1.33/build/php/extensions/apcu-5.1.17.tgz b/apps/php7/7.1.33/build/php/extensions/apcu-5.1.17.tgz deleted file mode 100644 index c15ca116..00000000 Binary files a/apps/php7/7.1.33/build/php/extensions/apcu-5.1.17.tgz and /dev/null differ diff --git a/apps/php7/7.1.33/build/php/extensions/event-3.0.8.tgz b/apps/php7/7.1.33/build/php/extensions/event-3.0.8.tgz deleted file mode 100644 index e7a471bb..00000000 Binary files a/apps/php7/7.1.33/build/php/extensions/event-3.0.8.tgz and /dev/null differ diff --git a/apps/php7/7.1.33/build/php/extensions/install-composer.sh b/apps/php7/7.1.33/build/php/extensions/install-composer.sh deleted file mode 100644 index 34074732..00000000 --- a/apps/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/apps/php7/7.1.33/build/php/extensions/install-php-extensions b/apps/php7/7.1.33/build/php/extensions/install-php-extensions deleted file mode 100644 index 164c8d47..00000000 --- a/apps/php7/7.1.33/build/php/extensions/install-php-extensions +++ /dev/null @@ -1,4157 +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.1.28 - -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 wanted PHP module version, resolving it if it starts with '^' -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The version to be used -resolveWantedPHPModuleVersion() { - resolveWantedPHPModuleVersion_raw="$(getWantedPHPModuleVersion "$1")" - resolveWantedPHPModuleVersion_afterCaret="${resolveWantedPHPModuleVersion_raw#^}" - if test "$resolveWantedPHPModuleVersion_raw" = "$resolveWantedPHPModuleVersion_afterCaret"; then - printf '%s' "$resolveWantedPHPModuleVersion_raw" - return - fi - resolveWantedPHPModuleVersion_xml="$(curl -sSLf "http://pecl.php.net/rest/r/$1/allreleases.xml")" - resolveWantedPHPModuleVersion_versions="$(printf '%s' "$resolveWantedPHPModuleVersion_xml" | tr -s ' \t\r\n' ' ' | sed -r 's# *<#\n<#g' | grep '' | sed 's###g' | sed 's# ##g')" - resetIFS - for resolveWantedPHPModuleVersion_version in $resolveWantedPHPModuleVersion_versions; do - resolveWantedPHPModuleVersion_suffix="${resolveWantedPHPModuleVersion_version#$resolveWantedPHPModuleVersion_afterCaret}" - if test "$resolveWantedPHPModuleVersion_version" != "${resolveWantedPHPModuleVersion_version#$resolveWantedPHPModuleVersion_afterCaret.}"; then - # Example: looking for 1.0, found 1.0.1 - printf '%s' "$resolveWantedPHPModuleVersion_version" - return - fi - done - for resolveWantedPHPModuleVersion_version in $resolveWantedPHPModuleVersion_versions; do - resolveWantedPHPModuleVersion_suffix="${resolveWantedPHPModuleVersion_version#$resolveWantedPHPModuleVersion_afterCaret}" - if test "$resolveWantedPHPModuleVersion_version" = "$resolveWantedPHPModuleVersion_suffix"; then - continue - fi - if test -z "$resolveWantedPHPModuleVersion_suffix"; then - # Example: looking for 1.0, found exactly it - printf '%s' "$resolveWantedPHPModuleVersion_version" - return - fi - case "$resolveWantedPHPModuleVersion_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' "$resolveWantedPHPModuleVersion_version" - return - ;; - esac - done - printf 'Unable to find a version of "%s" compatible with "%s"\nAvailable versions are:\n%s\n' "$1" "$resolveWantedPHPModuleVersion_raw" "$resolveWantedPHPModuleVersion_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 - peclStabilityFlagToVersion_url="http://pecl.php.net/rest/r/$1/$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='libssl1.0' - 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_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - ddtrace@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent curl" - 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) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmpdec[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmpdec-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" - ;; - 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 ! 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" - ;; - 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" - ;; - 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" - ;; - 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" - ;; - 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++" - ;; - 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" - 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 - ;; - relay@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs zstd-libs" - if test $DISTRO_MAJMIN_VERSION -ge 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libssl1.1" - fi - ;; - 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" - ;; - 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 lapack libexecinfo openblas" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lapack-dev libexecinfo-dev openblas-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 - ;; - tensor@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapacke libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblapack-dev libopenblas-dev liblapacke-dev" - if test $DISTRO_VERSION_NUMBER -ge 11; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-10" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-10-dev" - elif test $DISTRO_VERSION_NUMBER -ge 10; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-8" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-8-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" - ;; - 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" - ;; - 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 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" - ;; - *) - 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"; 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 -installMicrosoftSqlServerODBC() { - printf 'Installing the Microsoft SQL Server ODBC Driver\n' - case "$DISTRO" in - alpine) - # https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server#alpine17 - 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.9.1.1-1_amd64.apk - else - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/b/9/f/b9f3cce4-3925-46d4-9f46-da08869c6486/msodbcsql18_18.0.1.1-1_amd64.apk - fi - printf '\n' | apk add --allow-untrusted /tmp/src/msodbcsql.apk - rm -rf /tmp/src/msodbcsql.apk - ;; - debian) - # https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server#debian17 - printf -- '- installing the Microsoft APT key\n' - if test $DISTRO_VERSION_NUMBER -ge 11; then - # apt-key is deprecated - curl -sSLf -o /etc/apt/trusted.gpg.d/microsoft.asc https://packages.microsoft.com/keys/microsoft.asc - else - 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 && $DISTRO_VERSION_NUMBER -le 11; then - # On Debian 9 and 11 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; 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_dir="$(getPackageSource https://aomedia.googlesource.com/aom/+archive/v3.3.0.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://code.videolan.org/videolan/dav1d/-/archive/0.9.2/dav1d-0.9.2.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; 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/25d0a5110be796eef47004412baf43333d9ecf26.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/v0.9.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 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 a bundled PHP module given its handle -# -# Arguments: -# $1: the handle of the PHP module -# -# Set: -# UNNEEDED_PACKAGE_LINKS -# -# Output: -# Nothing -installBundledModule() { - printf '### INSTALLING BUNDLED MODULE %s ###\n' "$1" - if test -n "$(getWantedPHPModuleVersion "$1")"; then - printf '### WARNING the module "%s" is bundled with PHP, you can NOT specify a version for it\n' "$1" >&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 - ;; - 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 - ;; - 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 - 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 -} - -# 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="$(resolveWantedPHPModuleVersion "$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 - 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.30.3 - 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 - fi - ;; - decimal) - case "$DISTRO" in - alpine) - if ! test -f /usr/local/lib/libmpdec.so; then - installRemoteModule_src="$(getPackageSource https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-2.5.1.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure --disable-cxx - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - ;; - esac - ;; - ds) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=1.3.0 - 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 - 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.20/gearmand-1.1.20.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=71b5f9001512e16d3cf4657b517e8a051d6ef36f - 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"; then - # See https://github.com/protocolbuffers/protobuf/issues/10619 - installRemoteModule_version=1.55.0 - 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 - ;; - 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 - ;; - 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 - fi - 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 - ;; - oauth) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.3 - fi - 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 - 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 - # 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 - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '22.8.0') -ge 0; then - #enable hook curl support? - addConfigureOption enable-hook-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - else - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '4.8.0') -ge 0; then - # enable postgres support? - addConfigureOption with-postgres yes - fi - fi - ;; - opentelemetry) - 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 - ;; - 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 -le 506; then - installRemoteModule_version=3.12.4 - else - # See https://github.com/protocolbuffers/protobuf/issues/10619 - installRemoteModule_version=3.23.2 - 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 - 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' - 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 - ;; - 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 - installRemoteModule_version=0.9.0 - 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 -le 506; then - installRemoteModule_version=2.4.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.13 - 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 - 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 - 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 -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 yes - # 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 yes - # 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 yes - # 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 yes - 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 - ;; - 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 - ;; - 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" - checkModuleWorking "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - enablePhpExtension "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" -} - -# 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) - 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 -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 - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - case "$DISTRO" in - alpine) - apk del --purge $PACKAGES_VOLATILE - ;; - debian) - DEBIAN_FRONTEND=noninteractive apt-get remove --purge -y $PACKAGES_VOLATILE - ;; - esac - fi - if test -n "$PACKAGES_PREVIOUS"; then - case "$DISTRO" in - debian) - printf '### RESTORING PREVIOUSLY INSTALLED PACKAGES ###\n' - DEBIAN_FRONTEND=noninteractive apt-get install -qqy --no-install-recommends --no-upgrade $IPE_APTGET_INSTALLOPTIONS $PACKAGES_PREVIOUS - ;; - esac - fi - 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) ;; - *) - 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/apps/php7/7.1.33/build/php/extensions/install.sh b/apps/php7/7.1.33/build/php/extensions/install.sh deleted file mode 100644 index 1507b0ed..00000000 --- a/apps/php7/7.1.33/build/php/extensions/install.sh +++ /dev/null @@ -1,741 +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 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 ----------" - install-php-extensions sourceguardian -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_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 7 0 - 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 >= 7.0.0, installed version is ${PHP_VERSION}" - fi -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/apps/php7/7.1.33/build/php/extensions/memcache-2.2.6.tgz b/apps/php7/7.1.33/build/php/extensions/memcache-2.2.6.tgz deleted file mode 100644 index 841d0296..00000000 Binary files a/apps/php7/7.1.33/build/php/extensions/memcache-2.2.6.tgz and /dev/null differ diff --git a/apps/php7/7.1.33/build/php/extensions/memcache-4.0.5.2.tgz b/apps/php7/7.1.33/build/php/extensions/memcache-4.0.5.2.tgz deleted file mode 100644 index 1f7d370b..00000000 Binary files a/apps/php7/7.1.33/build/php/extensions/memcache-4.0.5.2.tgz and /dev/null differ diff --git a/apps/php7/7.1.33/build/php/extensions/mongodb-1.7.4.tgz b/apps/php7/7.1.33/build/php/extensions/mongodb-1.7.4.tgz deleted file mode 100644 index 94528560..00000000 Binary files a/apps/php7/7.1.33/build/php/extensions/mongodb-1.7.4.tgz and /dev/null differ diff --git a/apps/php7/7.1.33/build/php/extensions/redis-5.3.7.tgz b/apps/php7/7.1.33/build/php/extensions/redis-5.3.7.tgz deleted file mode 100644 index db2187b4..00000000 Binary files a/apps/php7/7.1.33/build/php/extensions/redis-5.3.7.tgz and /dev/null differ diff --git a/apps/php7/7.1.33/build/php/extensions/swoole-2.0.11.tgz b/apps/php7/7.1.33/build/php/extensions/swoole-2.0.11.tgz deleted file mode 100644 index a155450c..00000000 Binary files a/apps/php7/7.1.33/build/php/extensions/swoole-2.0.11.tgz and /dev/null differ diff --git a/apps/php7/7.1.33/build/php/extensions/swoole-4.8.11.tgz b/apps/php7/7.1.33/build/php/extensions/swoole-4.8.11.tgz deleted file mode 100644 index 01674cdc..00000000 Binary files a/apps/php7/7.1.33/build/php/extensions/swoole-4.8.11.tgz and /dev/null differ diff --git a/apps/php7/7.1.33/build/php/extensions/xdebug-2.5.5.tgz b/apps/php7/7.1.33/build/php/extensions/xdebug-2.5.5.tgz deleted file mode 100644 index d62c7ff6..00000000 Binary files a/apps/php7/7.1.33/build/php/extensions/xdebug-2.5.5.tgz and /dev/null differ diff --git a/apps/php7/7.1.33/build/php/extensions/xdebug-2.6.1.tgz b/apps/php7/7.1.33/build/php/extensions/xdebug-2.6.1.tgz deleted file mode 100644 index c756fba3..00000000 Binary files a/apps/php7/7.1.33/build/php/extensions/xdebug-2.6.1.tgz and /dev/null differ diff --git a/apps/php7/7.1.33/build/php/extensions/xdebug-2.9.2.tgz b/apps/php7/7.1.33/build/php/extensions/xdebug-2.9.2.tgz deleted file mode 100644 index 8131fff3..00000000 Binary files a/apps/php7/7.1.33/build/php/extensions/xdebug-2.9.2.tgz and /dev/null differ diff --git a/apps/php7/7.1.33/build/php/extensions/xhprof-2.2.0.tgz b/apps/php7/7.1.33/build/php/extensions/xhprof-2.2.0.tgz deleted file mode 100644 index 2614df31..00000000 Binary files a/apps/php7/7.1.33/build/php/extensions/xhprof-2.2.0.tgz and /dev/null differ diff --git a/apps/php7/7.1.33/build/php/extensions/yaf-2.3.5.tgz b/apps/php7/7.1.33/build/php/extensions/yaf-2.3.5.tgz deleted file mode 100644 index d965a0f1..00000000 Binary files a/apps/php7/7.1.33/build/php/extensions/yaf-2.3.5.tgz and /dev/null differ diff --git a/apps/php7/7.1.33/build/php/php-fpm.conf b/apps/php7/7.1.33/build/php/php-fpm.conf deleted file mode 100644 index 13183589..00000000 --- a/apps/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/apps/php7/7.1.33/build/php/php.ini b/apps/php7/7.1.33/build/php/php.ini deleted file mode 100644 index b6b0aee6..00000000 --- a/apps/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/apps/php7/7.1.33/conf/php-fpm.conf b/apps/php7/7.1.33/conf/php-fpm.conf deleted file mode 100644 index 13183589..00000000 --- a/apps/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/apps/php7/7.1.33/conf/php.ini b/apps/php7/7.1.33/conf/php.ini deleted file mode 100644 index b6b0aee6..00000000 --- a/apps/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/apps/php7/7.1.33/data.yml b/apps/php7/7.1.33/data.yml deleted file mode 100755 index 0123da18..00000000 --- a/apps/php7/7.1.33/data.yml +++ /dev/null @@ -1,9 +0,0 @@ -additionalProperties: - formFields: - - default: 9000 - envKey: PANEL_APP_PORT_HTTP - labelEn: PHP-FPM Port - labelZh: PHP-FPM 端口 - required: true - rule: paramPort - type: number diff --git a/apps/php7/7.1.33/docker-compose.yml b/apps/php7/7.1.33/docker-compose.yml deleted file mode 100644 index 9173c14e..00000000 --- a/apps/php7/7.1.33/docker-compose.yml +++ /dev/null @@ -1,22 +0,0 @@ -version: '3' -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/apps/php7/7.2.34/build/.env b/apps/php7/7.2.34/build/.env deleted file mode 100644 index 6e53ecc0..00000000 --- a/apps/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/apps/php7/7.2.34/build/config.json b/apps/php7/7.2.34/build/config.json deleted file mode 100644 index bda2e4eb..00000000 --- a/apps/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": "sg11", - "value": "sourceguardian" - }, - { - "label": "imagick", - "value": "imagick" - } - ], - "envKey": "PHP_EXTENSIONS", - "edit": true - } - ] -} \ No newline at end of file diff --git a/apps/php7/7.2.34/build/docker-compose.yml b/apps/php7/7.2.34/build/docker-compose.yml deleted file mode 100644 index 76332ace..00000000 --- a/apps/php7/7.2.34/build/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -version: '3' -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/apps/php7/7.2.34/build/php/Dockerfile b/apps/php7/7.2.34/build/php/Dockerfile deleted file mode 100644 index 7203576e..00000000 --- a/apps/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/apps/php7/7.2.34/build/php/extensions/amqp-1.10.2.tgz b/apps/php7/7.2.34/build/php/extensions/amqp-1.10.2.tgz deleted file mode 100644 index 7bcd30d0..00000000 Binary files a/apps/php7/7.2.34/build/php/extensions/amqp-1.10.2.tgz and /dev/null differ diff --git a/apps/php7/7.2.34/build/php/extensions/apcu-5.1.17.tgz b/apps/php7/7.2.34/build/php/extensions/apcu-5.1.17.tgz deleted file mode 100644 index c15ca116..00000000 Binary files a/apps/php7/7.2.34/build/php/extensions/apcu-5.1.17.tgz and /dev/null differ diff --git a/apps/php7/7.2.34/build/php/extensions/event-3.0.8.tgz b/apps/php7/7.2.34/build/php/extensions/event-3.0.8.tgz deleted file mode 100644 index e7a471bb..00000000 Binary files a/apps/php7/7.2.34/build/php/extensions/event-3.0.8.tgz and /dev/null differ diff --git a/apps/php7/7.2.34/build/php/extensions/install-composer.sh b/apps/php7/7.2.34/build/php/extensions/install-composer.sh deleted file mode 100644 index 34074732..00000000 --- a/apps/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/apps/php7/7.2.34/build/php/extensions/install-php-extensions b/apps/php7/7.2.34/build/php/extensions/install-php-extensions deleted file mode 100644 index 164c8d47..00000000 --- a/apps/php7/7.2.34/build/php/extensions/install-php-extensions +++ /dev/null @@ -1,4157 +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.1.28 - -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 wanted PHP module version, resolving it if it starts with '^' -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The version to be used -resolveWantedPHPModuleVersion() { - resolveWantedPHPModuleVersion_raw="$(getWantedPHPModuleVersion "$1")" - resolveWantedPHPModuleVersion_afterCaret="${resolveWantedPHPModuleVersion_raw#^}" - if test "$resolveWantedPHPModuleVersion_raw" = "$resolveWantedPHPModuleVersion_afterCaret"; then - printf '%s' "$resolveWantedPHPModuleVersion_raw" - return - fi - resolveWantedPHPModuleVersion_xml="$(curl -sSLf "http://pecl.php.net/rest/r/$1/allreleases.xml")" - resolveWantedPHPModuleVersion_versions="$(printf '%s' "$resolveWantedPHPModuleVersion_xml" | tr -s ' \t\r\n' ' ' | sed -r 's# *<#\n<#g' | grep '' | sed 's###g' | sed 's# ##g')" - resetIFS - for resolveWantedPHPModuleVersion_version in $resolveWantedPHPModuleVersion_versions; do - resolveWantedPHPModuleVersion_suffix="${resolveWantedPHPModuleVersion_version#$resolveWantedPHPModuleVersion_afterCaret}" - if test "$resolveWantedPHPModuleVersion_version" != "${resolveWantedPHPModuleVersion_version#$resolveWantedPHPModuleVersion_afterCaret.}"; then - # Example: looking for 1.0, found 1.0.1 - printf '%s' "$resolveWantedPHPModuleVersion_version" - return - fi - done - for resolveWantedPHPModuleVersion_version in $resolveWantedPHPModuleVersion_versions; do - resolveWantedPHPModuleVersion_suffix="${resolveWantedPHPModuleVersion_version#$resolveWantedPHPModuleVersion_afterCaret}" - if test "$resolveWantedPHPModuleVersion_version" = "$resolveWantedPHPModuleVersion_suffix"; then - continue - fi - if test -z "$resolveWantedPHPModuleVersion_suffix"; then - # Example: looking for 1.0, found exactly it - printf '%s' "$resolveWantedPHPModuleVersion_version" - return - fi - case "$resolveWantedPHPModuleVersion_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' "$resolveWantedPHPModuleVersion_version" - return - ;; - esac - done - printf 'Unable to find a version of "%s" compatible with "%s"\nAvailable versions are:\n%s\n' "$1" "$resolveWantedPHPModuleVersion_raw" "$resolveWantedPHPModuleVersion_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 - peclStabilityFlagToVersion_url="http://pecl.php.net/rest/r/$1/$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='libssl1.0' - 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_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - ddtrace@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent curl" - 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) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmpdec[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmpdec-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" - ;; - 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 ! 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" - ;; - 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" - ;; - 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" - ;; - 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" - ;; - 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++" - ;; - 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" - 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 - ;; - relay@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs zstd-libs" - if test $DISTRO_MAJMIN_VERSION -ge 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libssl1.1" - fi - ;; - 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" - ;; - 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 lapack libexecinfo openblas" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lapack-dev libexecinfo-dev openblas-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 - ;; - tensor@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapacke libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblapack-dev libopenblas-dev liblapacke-dev" - if test $DISTRO_VERSION_NUMBER -ge 11; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-10" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-10-dev" - elif test $DISTRO_VERSION_NUMBER -ge 10; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-8" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-8-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" - ;; - 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" - ;; - 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 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" - ;; - *) - 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"; 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 -installMicrosoftSqlServerODBC() { - printf 'Installing the Microsoft SQL Server ODBC Driver\n' - case "$DISTRO" in - alpine) - # https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server#alpine17 - 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.9.1.1-1_amd64.apk - else - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/b/9/f/b9f3cce4-3925-46d4-9f46-da08869c6486/msodbcsql18_18.0.1.1-1_amd64.apk - fi - printf '\n' | apk add --allow-untrusted /tmp/src/msodbcsql.apk - rm -rf /tmp/src/msodbcsql.apk - ;; - debian) - # https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server#debian17 - printf -- '- installing the Microsoft APT key\n' - if test $DISTRO_VERSION_NUMBER -ge 11; then - # apt-key is deprecated - curl -sSLf -o /etc/apt/trusted.gpg.d/microsoft.asc https://packages.microsoft.com/keys/microsoft.asc - else - 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 && $DISTRO_VERSION_NUMBER -le 11; then - # On Debian 9 and 11 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; 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_dir="$(getPackageSource https://aomedia.googlesource.com/aom/+archive/v3.3.0.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://code.videolan.org/videolan/dav1d/-/archive/0.9.2/dav1d-0.9.2.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; 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/25d0a5110be796eef47004412baf43333d9ecf26.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/v0.9.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 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 a bundled PHP module given its handle -# -# Arguments: -# $1: the handle of the PHP module -# -# Set: -# UNNEEDED_PACKAGE_LINKS -# -# Output: -# Nothing -installBundledModule() { - printf '### INSTALLING BUNDLED MODULE %s ###\n' "$1" - if test -n "$(getWantedPHPModuleVersion "$1")"; then - printf '### WARNING the module "%s" is bundled with PHP, you can NOT specify a version for it\n' "$1" >&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 - ;; - 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 - ;; - 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 - 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 -} - -# 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="$(resolveWantedPHPModuleVersion "$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 - 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.30.3 - 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 - fi - ;; - decimal) - case "$DISTRO" in - alpine) - if ! test -f /usr/local/lib/libmpdec.so; then - installRemoteModule_src="$(getPackageSource https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-2.5.1.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure --disable-cxx - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - ;; - esac - ;; - ds) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=1.3.0 - 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 - 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.20/gearmand-1.1.20.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=71b5f9001512e16d3cf4657b517e8a051d6ef36f - 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"; then - # See https://github.com/protocolbuffers/protobuf/issues/10619 - installRemoteModule_version=1.55.0 - 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 - ;; - 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 - ;; - 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 - fi - 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 - ;; - oauth) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.3 - fi - 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 - 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 - # 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 - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '22.8.0') -ge 0; then - #enable hook curl support? - addConfigureOption enable-hook-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - else - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '4.8.0') -ge 0; then - # enable postgres support? - addConfigureOption with-postgres yes - fi - fi - ;; - opentelemetry) - 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 - ;; - 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 -le 506; then - installRemoteModule_version=3.12.4 - else - # See https://github.com/protocolbuffers/protobuf/issues/10619 - installRemoteModule_version=3.23.2 - 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 - 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' - 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 - ;; - 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 - installRemoteModule_version=0.9.0 - 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 -le 506; then - installRemoteModule_version=2.4.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.13 - 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 - 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 - 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 -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 yes - # 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 yes - # 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 yes - # 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 yes - 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 - ;; - 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 - ;; - 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" - checkModuleWorking "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - enablePhpExtension "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" -} - -# 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) - 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 -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 - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - case "$DISTRO" in - alpine) - apk del --purge $PACKAGES_VOLATILE - ;; - debian) - DEBIAN_FRONTEND=noninteractive apt-get remove --purge -y $PACKAGES_VOLATILE - ;; - esac - fi - if test -n "$PACKAGES_PREVIOUS"; then - case "$DISTRO" in - debian) - printf '### RESTORING PREVIOUSLY INSTALLED PACKAGES ###\n' - DEBIAN_FRONTEND=noninteractive apt-get install -qqy --no-install-recommends --no-upgrade $IPE_APTGET_INSTALLOPTIONS $PACKAGES_PREVIOUS - ;; - esac - fi - 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) ;; - *) - 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/apps/php7/7.2.34/build/php/extensions/install.sh b/apps/php7/7.2.34/build/php/extensions/install.sh deleted file mode 100644 index 1507b0ed..00000000 --- a/apps/php7/7.2.34/build/php/extensions/install.sh +++ /dev/null @@ -1,741 +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 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 ----------" - install-php-extensions sourceguardian -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_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 7 0 - 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 >= 7.0.0, installed version is ${PHP_VERSION}" - fi -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/apps/php7/7.2.34/build/php/extensions/memcache-2.2.6.tgz b/apps/php7/7.2.34/build/php/extensions/memcache-2.2.6.tgz deleted file mode 100644 index 841d0296..00000000 Binary files a/apps/php7/7.2.34/build/php/extensions/memcache-2.2.6.tgz and /dev/null differ diff --git a/apps/php7/7.2.34/build/php/extensions/memcache-4.0.5.2.tgz b/apps/php7/7.2.34/build/php/extensions/memcache-4.0.5.2.tgz deleted file mode 100644 index 1f7d370b..00000000 Binary files a/apps/php7/7.2.34/build/php/extensions/memcache-4.0.5.2.tgz and /dev/null differ diff --git a/apps/php7/7.2.34/build/php/extensions/mongodb-1.7.4.tgz b/apps/php7/7.2.34/build/php/extensions/mongodb-1.7.4.tgz deleted file mode 100644 index 94528560..00000000 Binary files a/apps/php7/7.2.34/build/php/extensions/mongodb-1.7.4.tgz and /dev/null differ diff --git a/apps/php7/7.2.34/build/php/extensions/redis-5.3.7.tgz b/apps/php7/7.2.34/build/php/extensions/redis-5.3.7.tgz deleted file mode 100644 index db2187b4..00000000 Binary files a/apps/php7/7.2.34/build/php/extensions/redis-5.3.7.tgz and /dev/null differ diff --git a/apps/php7/7.2.34/build/php/extensions/swoole-2.0.11.tgz b/apps/php7/7.2.34/build/php/extensions/swoole-2.0.11.tgz deleted file mode 100644 index a155450c..00000000 Binary files a/apps/php7/7.2.34/build/php/extensions/swoole-2.0.11.tgz and /dev/null differ diff --git a/apps/php7/7.2.34/build/php/extensions/swoole-4.8.11.tgz b/apps/php7/7.2.34/build/php/extensions/swoole-4.8.11.tgz deleted file mode 100644 index 01674cdc..00000000 Binary files a/apps/php7/7.2.34/build/php/extensions/swoole-4.8.11.tgz and /dev/null differ diff --git a/apps/php7/7.2.34/build/php/extensions/xdebug-2.5.5.tgz b/apps/php7/7.2.34/build/php/extensions/xdebug-2.5.5.tgz deleted file mode 100644 index d62c7ff6..00000000 Binary files a/apps/php7/7.2.34/build/php/extensions/xdebug-2.5.5.tgz and /dev/null differ diff --git a/apps/php7/7.2.34/build/php/extensions/xdebug-2.6.1.tgz b/apps/php7/7.2.34/build/php/extensions/xdebug-2.6.1.tgz deleted file mode 100644 index c756fba3..00000000 Binary files a/apps/php7/7.2.34/build/php/extensions/xdebug-2.6.1.tgz and /dev/null differ diff --git a/apps/php7/7.2.34/build/php/extensions/xdebug-2.9.2.tgz b/apps/php7/7.2.34/build/php/extensions/xdebug-2.9.2.tgz deleted file mode 100644 index 8131fff3..00000000 Binary files a/apps/php7/7.2.34/build/php/extensions/xdebug-2.9.2.tgz and /dev/null differ diff --git a/apps/php7/7.2.34/build/php/extensions/xhprof-2.2.0.tgz b/apps/php7/7.2.34/build/php/extensions/xhprof-2.2.0.tgz deleted file mode 100644 index 2614df31..00000000 Binary files a/apps/php7/7.2.34/build/php/extensions/xhprof-2.2.0.tgz and /dev/null differ diff --git a/apps/php7/7.2.34/build/php/extensions/yaf-2.3.5.tgz b/apps/php7/7.2.34/build/php/extensions/yaf-2.3.5.tgz deleted file mode 100644 index d965a0f1..00000000 Binary files a/apps/php7/7.2.34/build/php/extensions/yaf-2.3.5.tgz and /dev/null differ diff --git a/apps/php7/7.2.34/build/php/php-fpm.conf b/apps/php7/7.2.34/build/php/php-fpm.conf deleted file mode 100644 index 13183589..00000000 --- a/apps/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/apps/php7/7.2.34/build/php/php.ini b/apps/php7/7.2.34/build/php/php.ini deleted file mode 100644 index b6b0aee6..00000000 --- a/apps/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/apps/php7/7.2.34/conf/php-fpm.conf b/apps/php7/7.2.34/conf/php-fpm.conf deleted file mode 100644 index 13183589..00000000 --- a/apps/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/apps/php7/7.2.34/conf/php.ini b/apps/php7/7.2.34/conf/php.ini deleted file mode 100644 index b6b0aee6..00000000 --- a/apps/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/apps/php7/7.2.34/data.yml b/apps/php7/7.2.34/data.yml deleted file mode 100755 index 0123da18..00000000 --- a/apps/php7/7.2.34/data.yml +++ /dev/null @@ -1,9 +0,0 @@ -additionalProperties: - formFields: - - default: 9000 - envKey: PANEL_APP_PORT_HTTP - labelEn: PHP-FPM Port - labelZh: PHP-FPM 端口 - required: true - rule: paramPort - type: number diff --git a/apps/php7/7.2.34/docker-compose.yml b/apps/php7/7.2.34/docker-compose.yml deleted file mode 100644 index 9173c14e..00000000 --- a/apps/php7/7.2.34/docker-compose.yml +++ /dev/null @@ -1,22 +0,0 @@ -version: '3' -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/apps/php7/7.3.33/build/.env b/apps/php7/7.3.33/build/.env deleted file mode 100644 index 6b9ce91d..00000000 --- a/apps/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/apps/php7/7.3.33/build/config.json b/apps/php7/7.3.33/build/config.json deleted file mode 100644 index bda2e4eb..00000000 --- a/apps/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": "sg11", - "value": "sourceguardian" - }, - { - "label": "imagick", - "value": "imagick" - } - ], - "envKey": "PHP_EXTENSIONS", - "edit": true - } - ] -} \ No newline at end of file diff --git a/apps/php7/7.3.33/build/docker-compose.yml b/apps/php7/7.3.33/build/docker-compose.yml deleted file mode 100644 index 76332ace..00000000 --- a/apps/php7/7.3.33/build/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -version: '3' -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/apps/php7/7.3.33/build/php/Dockerfile b/apps/php7/7.3.33/build/php/Dockerfile deleted file mode 100644 index 7203576e..00000000 --- a/apps/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/apps/php7/7.3.33/build/php/extensions/amqp-1.10.2.tgz b/apps/php7/7.3.33/build/php/extensions/amqp-1.10.2.tgz deleted file mode 100644 index 7bcd30d0..00000000 Binary files a/apps/php7/7.3.33/build/php/extensions/amqp-1.10.2.tgz and /dev/null differ diff --git a/apps/php7/7.3.33/build/php/extensions/apcu-5.1.17.tgz b/apps/php7/7.3.33/build/php/extensions/apcu-5.1.17.tgz deleted file mode 100644 index c15ca116..00000000 Binary files a/apps/php7/7.3.33/build/php/extensions/apcu-5.1.17.tgz and /dev/null differ diff --git a/apps/php7/7.3.33/build/php/extensions/event-3.0.8.tgz b/apps/php7/7.3.33/build/php/extensions/event-3.0.8.tgz deleted file mode 100644 index e7a471bb..00000000 Binary files a/apps/php7/7.3.33/build/php/extensions/event-3.0.8.tgz and /dev/null differ diff --git a/apps/php7/7.3.33/build/php/extensions/install-composer.sh b/apps/php7/7.3.33/build/php/extensions/install-composer.sh deleted file mode 100644 index 34074732..00000000 --- a/apps/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/apps/php7/7.3.33/build/php/extensions/install-php-extensions b/apps/php7/7.3.33/build/php/extensions/install-php-extensions deleted file mode 100644 index 164c8d47..00000000 --- a/apps/php7/7.3.33/build/php/extensions/install-php-extensions +++ /dev/null @@ -1,4157 +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.1.28 - -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 wanted PHP module version, resolving it if it starts with '^' -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The version to be used -resolveWantedPHPModuleVersion() { - resolveWantedPHPModuleVersion_raw="$(getWantedPHPModuleVersion "$1")" - resolveWantedPHPModuleVersion_afterCaret="${resolveWantedPHPModuleVersion_raw#^}" - if test "$resolveWantedPHPModuleVersion_raw" = "$resolveWantedPHPModuleVersion_afterCaret"; then - printf '%s' "$resolveWantedPHPModuleVersion_raw" - return - fi - resolveWantedPHPModuleVersion_xml="$(curl -sSLf "http://pecl.php.net/rest/r/$1/allreleases.xml")" - resolveWantedPHPModuleVersion_versions="$(printf '%s' "$resolveWantedPHPModuleVersion_xml" | tr -s ' \t\r\n' ' ' | sed -r 's# *<#\n<#g' | grep '' | sed 's###g' | sed 's# ##g')" - resetIFS - for resolveWantedPHPModuleVersion_version in $resolveWantedPHPModuleVersion_versions; do - resolveWantedPHPModuleVersion_suffix="${resolveWantedPHPModuleVersion_version#$resolveWantedPHPModuleVersion_afterCaret}" - if test "$resolveWantedPHPModuleVersion_version" != "${resolveWantedPHPModuleVersion_version#$resolveWantedPHPModuleVersion_afterCaret.}"; then - # Example: looking for 1.0, found 1.0.1 - printf '%s' "$resolveWantedPHPModuleVersion_version" - return - fi - done - for resolveWantedPHPModuleVersion_version in $resolveWantedPHPModuleVersion_versions; do - resolveWantedPHPModuleVersion_suffix="${resolveWantedPHPModuleVersion_version#$resolveWantedPHPModuleVersion_afterCaret}" - if test "$resolveWantedPHPModuleVersion_version" = "$resolveWantedPHPModuleVersion_suffix"; then - continue - fi - if test -z "$resolveWantedPHPModuleVersion_suffix"; then - # Example: looking for 1.0, found exactly it - printf '%s' "$resolveWantedPHPModuleVersion_version" - return - fi - case "$resolveWantedPHPModuleVersion_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' "$resolveWantedPHPModuleVersion_version" - return - ;; - esac - done - printf 'Unable to find a version of "%s" compatible with "%s"\nAvailable versions are:\n%s\n' "$1" "$resolveWantedPHPModuleVersion_raw" "$resolveWantedPHPModuleVersion_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 - peclStabilityFlagToVersion_url="http://pecl.php.net/rest/r/$1/$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='libssl1.0' - 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_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - ddtrace@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent curl" - 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) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmpdec[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmpdec-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" - ;; - 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 ! 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" - ;; - 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" - ;; - 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" - ;; - 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" - ;; - 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++" - ;; - 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" - 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 - ;; - relay@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs zstd-libs" - if test $DISTRO_MAJMIN_VERSION -ge 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libssl1.1" - fi - ;; - 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" - ;; - 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 lapack libexecinfo openblas" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lapack-dev libexecinfo-dev openblas-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 - ;; - tensor@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapacke libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblapack-dev libopenblas-dev liblapacke-dev" - if test $DISTRO_VERSION_NUMBER -ge 11; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-10" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-10-dev" - elif test $DISTRO_VERSION_NUMBER -ge 10; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-8" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-8-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" - ;; - 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" - ;; - 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 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" - ;; - *) - 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"; 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 -installMicrosoftSqlServerODBC() { - printf 'Installing the Microsoft SQL Server ODBC Driver\n' - case "$DISTRO" in - alpine) - # https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server#alpine17 - 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.9.1.1-1_amd64.apk - else - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/b/9/f/b9f3cce4-3925-46d4-9f46-da08869c6486/msodbcsql18_18.0.1.1-1_amd64.apk - fi - printf '\n' | apk add --allow-untrusted /tmp/src/msodbcsql.apk - rm -rf /tmp/src/msodbcsql.apk - ;; - debian) - # https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server#debian17 - printf -- '- installing the Microsoft APT key\n' - if test $DISTRO_VERSION_NUMBER -ge 11; then - # apt-key is deprecated - curl -sSLf -o /etc/apt/trusted.gpg.d/microsoft.asc https://packages.microsoft.com/keys/microsoft.asc - else - 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 && $DISTRO_VERSION_NUMBER -le 11; then - # On Debian 9 and 11 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; 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_dir="$(getPackageSource https://aomedia.googlesource.com/aom/+archive/v3.3.0.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://code.videolan.org/videolan/dav1d/-/archive/0.9.2/dav1d-0.9.2.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; 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/25d0a5110be796eef47004412baf43333d9ecf26.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/v0.9.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 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 a bundled PHP module given its handle -# -# Arguments: -# $1: the handle of the PHP module -# -# Set: -# UNNEEDED_PACKAGE_LINKS -# -# Output: -# Nothing -installBundledModule() { - printf '### INSTALLING BUNDLED MODULE %s ###\n' "$1" - if test -n "$(getWantedPHPModuleVersion "$1")"; then - printf '### WARNING the module "%s" is bundled with PHP, you can NOT specify a version for it\n' "$1" >&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 - ;; - 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 - ;; - 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 - 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 -} - -# 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="$(resolveWantedPHPModuleVersion "$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 - 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.30.3 - 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 - fi - ;; - decimal) - case "$DISTRO" in - alpine) - if ! test -f /usr/local/lib/libmpdec.so; then - installRemoteModule_src="$(getPackageSource https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-2.5.1.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure --disable-cxx - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - ;; - esac - ;; - ds) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=1.3.0 - 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 - 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.20/gearmand-1.1.20.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=71b5f9001512e16d3cf4657b517e8a051d6ef36f - 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"; then - # See https://github.com/protocolbuffers/protobuf/issues/10619 - installRemoteModule_version=1.55.0 - 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 - ;; - 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 - ;; - 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 - fi - 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 - ;; - oauth) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.3 - fi - 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 - 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 - # 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 - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '22.8.0') -ge 0; then - #enable hook curl support? - addConfigureOption enable-hook-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - else - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '4.8.0') -ge 0; then - # enable postgres support? - addConfigureOption with-postgres yes - fi - fi - ;; - opentelemetry) - 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 - ;; - 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 -le 506; then - installRemoteModule_version=3.12.4 - else - # See https://github.com/protocolbuffers/protobuf/issues/10619 - installRemoteModule_version=3.23.2 - 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 - 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' - 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 - ;; - 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 - installRemoteModule_version=0.9.0 - 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 -le 506; then - installRemoteModule_version=2.4.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.13 - 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 - 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 - 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 -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 yes - # 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 yes - # 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 yes - # 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 yes - 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 - ;; - 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 - ;; - 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" - checkModuleWorking "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - enablePhpExtension "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" -} - -# 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) - 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 -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 - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - case "$DISTRO" in - alpine) - apk del --purge $PACKAGES_VOLATILE - ;; - debian) - DEBIAN_FRONTEND=noninteractive apt-get remove --purge -y $PACKAGES_VOLATILE - ;; - esac - fi - if test -n "$PACKAGES_PREVIOUS"; then - case "$DISTRO" in - debian) - printf '### RESTORING PREVIOUSLY INSTALLED PACKAGES ###\n' - DEBIAN_FRONTEND=noninteractive apt-get install -qqy --no-install-recommends --no-upgrade $IPE_APTGET_INSTALLOPTIONS $PACKAGES_PREVIOUS - ;; - esac - fi - 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) ;; - *) - 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/apps/php7/7.3.33/build/php/extensions/install.sh b/apps/php7/7.3.33/build/php/extensions/install.sh deleted file mode 100644 index 1507b0ed..00000000 --- a/apps/php7/7.3.33/build/php/extensions/install.sh +++ /dev/null @@ -1,741 +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 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 ----------" - install-php-extensions sourceguardian -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_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 7 0 - 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 >= 7.0.0, installed version is ${PHP_VERSION}" - fi -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/apps/php7/7.3.33/build/php/extensions/memcache-2.2.6.tgz b/apps/php7/7.3.33/build/php/extensions/memcache-2.2.6.tgz deleted file mode 100644 index 841d0296..00000000 Binary files a/apps/php7/7.3.33/build/php/extensions/memcache-2.2.6.tgz and /dev/null differ diff --git a/apps/php7/7.3.33/build/php/extensions/memcache-4.0.5.2.tgz b/apps/php7/7.3.33/build/php/extensions/memcache-4.0.5.2.tgz deleted file mode 100644 index 1f7d370b..00000000 Binary files a/apps/php7/7.3.33/build/php/extensions/memcache-4.0.5.2.tgz and /dev/null differ diff --git a/apps/php7/7.3.33/build/php/extensions/mongodb-1.7.4.tgz b/apps/php7/7.3.33/build/php/extensions/mongodb-1.7.4.tgz deleted file mode 100644 index 94528560..00000000 Binary files a/apps/php7/7.3.33/build/php/extensions/mongodb-1.7.4.tgz and /dev/null differ diff --git a/apps/php7/7.3.33/build/php/extensions/redis-5.3.7.tgz b/apps/php7/7.3.33/build/php/extensions/redis-5.3.7.tgz deleted file mode 100644 index db2187b4..00000000 Binary files a/apps/php7/7.3.33/build/php/extensions/redis-5.3.7.tgz and /dev/null differ diff --git a/apps/php7/7.3.33/build/php/extensions/swoole-2.0.11.tgz b/apps/php7/7.3.33/build/php/extensions/swoole-2.0.11.tgz deleted file mode 100644 index a155450c..00000000 Binary files a/apps/php7/7.3.33/build/php/extensions/swoole-2.0.11.tgz and /dev/null differ diff --git a/apps/php7/7.3.33/build/php/extensions/swoole-4.8.11.tgz b/apps/php7/7.3.33/build/php/extensions/swoole-4.8.11.tgz deleted file mode 100644 index 01674cdc..00000000 Binary files a/apps/php7/7.3.33/build/php/extensions/swoole-4.8.11.tgz and /dev/null differ diff --git a/apps/php7/7.3.33/build/php/extensions/xdebug-2.5.5.tgz b/apps/php7/7.3.33/build/php/extensions/xdebug-2.5.5.tgz deleted file mode 100644 index d62c7ff6..00000000 Binary files a/apps/php7/7.3.33/build/php/extensions/xdebug-2.5.5.tgz and /dev/null differ diff --git a/apps/php7/7.3.33/build/php/extensions/xdebug-2.6.1.tgz b/apps/php7/7.3.33/build/php/extensions/xdebug-2.6.1.tgz deleted file mode 100644 index c756fba3..00000000 Binary files a/apps/php7/7.3.33/build/php/extensions/xdebug-2.6.1.tgz and /dev/null differ diff --git a/apps/php7/7.3.33/build/php/extensions/xdebug-2.9.2.tgz b/apps/php7/7.3.33/build/php/extensions/xdebug-2.9.2.tgz deleted file mode 100644 index 8131fff3..00000000 Binary files a/apps/php7/7.3.33/build/php/extensions/xdebug-2.9.2.tgz and /dev/null differ diff --git a/apps/php7/7.3.33/build/php/extensions/xhprof-2.2.0.tgz b/apps/php7/7.3.33/build/php/extensions/xhprof-2.2.0.tgz deleted file mode 100644 index 2614df31..00000000 Binary files a/apps/php7/7.3.33/build/php/extensions/xhprof-2.2.0.tgz and /dev/null differ diff --git a/apps/php7/7.3.33/build/php/extensions/yaf-2.3.5.tgz b/apps/php7/7.3.33/build/php/extensions/yaf-2.3.5.tgz deleted file mode 100644 index d965a0f1..00000000 Binary files a/apps/php7/7.3.33/build/php/extensions/yaf-2.3.5.tgz and /dev/null differ diff --git a/apps/php7/7.3.33/build/php/php-fpm.conf b/apps/php7/7.3.33/build/php/php-fpm.conf deleted file mode 100644 index 13183589..00000000 --- a/apps/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/apps/php7/7.3.33/build/php/php.ini b/apps/php7/7.3.33/build/php/php.ini deleted file mode 100644 index b6b0aee6..00000000 --- a/apps/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/apps/php7/7.3.33/conf/php-fpm.conf b/apps/php7/7.3.33/conf/php-fpm.conf deleted file mode 100644 index 13183589..00000000 --- a/apps/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/apps/php7/7.3.33/conf/php.ini b/apps/php7/7.3.33/conf/php.ini deleted file mode 100644 index b6b0aee6..00000000 --- a/apps/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/apps/php7/7.3.33/data.yml b/apps/php7/7.3.33/data.yml deleted file mode 100755 index 0123da18..00000000 --- a/apps/php7/7.3.33/data.yml +++ /dev/null @@ -1,9 +0,0 @@ -additionalProperties: - formFields: - - default: 9000 - envKey: PANEL_APP_PORT_HTTP - labelEn: PHP-FPM Port - labelZh: PHP-FPM 端口 - required: true - rule: paramPort - type: number diff --git a/apps/php7/7.3.33/docker-compose.yml b/apps/php7/7.3.33/docker-compose.yml deleted file mode 100644 index 9173c14e..00000000 --- a/apps/php7/7.3.33/docker-compose.yml +++ /dev/null @@ -1,22 +0,0 @@ -version: '3' -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/apps/php7/7.4.33/build/.env b/apps/php7/7.4.33/build/.env deleted file mode 100644 index feb4f942..00000000 --- a/apps/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/apps/php7/7.4.33/build/config.json b/apps/php7/7.4.33/build/config.json deleted file mode 100644 index bda2e4eb..00000000 --- a/apps/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": "sg11", - "value": "sourceguardian" - }, - { - "label": "imagick", - "value": "imagick" - } - ], - "envKey": "PHP_EXTENSIONS", - "edit": true - } - ] -} \ No newline at end of file diff --git a/apps/php7/7.4.33/build/docker-compose.yml b/apps/php7/7.4.33/build/docker-compose.yml deleted file mode 100644 index 76332ace..00000000 --- a/apps/php7/7.4.33/build/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -version: '3' -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/apps/php7/7.4.33/build/php/Dockerfile b/apps/php7/7.4.33/build/php/Dockerfile deleted file mode 100644 index 7203576e..00000000 --- a/apps/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/apps/php7/7.4.33/build/php/extensions/amqp-1.10.2.tgz b/apps/php7/7.4.33/build/php/extensions/amqp-1.10.2.tgz deleted file mode 100644 index 7bcd30d0..00000000 Binary files a/apps/php7/7.4.33/build/php/extensions/amqp-1.10.2.tgz and /dev/null differ diff --git a/apps/php7/7.4.33/build/php/extensions/apcu-5.1.17.tgz b/apps/php7/7.4.33/build/php/extensions/apcu-5.1.17.tgz deleted file mode 100644 index c15ca116..00000000 Binary files a/apps/php7/7.4.33/build/php/extensions/apcu-5.1.17.tgz and /dev/null differ diff --git a/apps/php7/7.4.33/build/php/extensions/event-3.0.8.tgz b/apps/php7/7.4.33/build/php/extensions/event-3.0.8.tgz deleted file mode 100644 index e7a471bb..00000000 Binary files a/apps/php7/7.4.33/build/php/extensions/event-3.0.8.tgz and /dev/null differ diff --git a/apps/php7/7.4.33/build/php/extensions/install-composer.sh b/apps/php7/7.4.33/build/php/extensions/install-composer.sh deleted file mode 100644 index 34074732..00000000 --- a/apps/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/apps/php7/7.4.33/build/php/extensions/install-php-extensions b/apps/php7/7.4.33/build/php/extensions/install-php-extensions deleted file mode 100644 index 164c8d47..00000000 --- a/apps/php7/7.4.33/build/php/extensions/install-php-extensions +++ /dev/null @@ -1,4157 +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.1.28 - -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 wanted PHP module version, resolving it if it starts with '^' -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The version to be used -resolveWantedPHPModuleVersion() { - resolveWantedPHPModuleVersion_raw="$(getWantedPHPModuleVersion "$1")" - resolveWantedPHPModuleVersion_afterCaret="${resolveWantedPHPModuleVersion_raw#^}" - if test "$resolveWantedPHPModuleVersion_raw" = "$resolveWantedPHPModuleVersion_afterCaret"; then - printf '%s' "$resolveWantedPHPModuleVersion_raw" - return - fi - resolveWantedPHPModuleVersion_xml="$(curl -sSLf "http://pecl.php.net/rest/r/$1/allreleases.xml")" - resolveWantedPHPModuleVersion_versions="$(printf '%s' "$resolveWantedPHPModuleVersion_xml" | tr -s ' \t\r\n' ' ' | sed -r 's# *<#\n<#g' | grep '' | sed 's###g' | sed 's# ##g')" - resetIFS - for resolveWantedPHPModuleVersion_version in $resolveWantedPHPModuleVersion_versions; do - resolveWantedPHPModuleVersion_suffix="${resolveWantedPHPModuleVersion_version#$resolveWantedPHPModuleVersion_afterCaret}" - if test "$resolveWantedPHPModuleVersion_version" != "${resolveWantedPHPModuleVersion_version#$resolveWantedPHPModuleVersion_afterCaret.}"; then - # Example: looking for 1.0, found 1.0.1 - printf '%s' "$resolveWantedPHPModuleVersion_version" - return - fi - done - for resolveWantedPHPModuleVersion_version in $resolveWantedPHPModuleVersion_versions; do - resolveWantedPHPModuleVersion_suffix="${resolveWantedPHPModuleVersion_version#$resolveWantedPHPModuleVersion_afterCaret}" - if test "$resolveWantedPHPModuleVersion_version" = "$resolveWantedPHPModuleVersion_suffix"; then - continue - fi - if test -z "$resolveWantedPHPModuleVersion_suffix"; then - # Example: looking for 1.0, found exactly it - printf '%s' "$resolveWantedPHPModuleVersion_version" - return - fi - case "$resolveWantedPHPModuleVersion_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' "$resolveWantedPHPModuleVersion_version" - return - ;; - esac - done - printf 'Unable to find a version of "%s" compatible with "%s"\nAvailable versions are:\n%s\n' "$1" "$resolveWantedPHPModuleVersion_raw" "$resolveWantedPHPModuleVersion_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 - peclStabilityFlagToVersion_url="http://pecl.php.net/rest/r/$1/$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='libssl1.0' - 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_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - ddtrace@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent curl" - 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) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmpdec[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmpdec-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" - ;; - 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 ! 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" - ;; - 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" - ;; - 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" - ;; - 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" - ;; - 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++" - ;; - 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" - 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 - ;; - relay@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs zstd-libs" - if test $DISTRO_MAJMIN_VERSION -ge 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libssl1.1" - fi - ;; - 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" - ;; - 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 lapack libexecinfo openblas" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lapack-dev libexecinfo-dev openblas-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 - ;; - tensor@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapacke libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblapack-dev libopenblas-dev liblapacke-dev" - if test $DISTRO_VERSION_NUMBER -ge 11; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-10" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-10-dev" - elif test $DISTRO_VERSION_NUMBER -ge 10; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-8" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-8-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" - ;; - 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" - ;; - 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 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" - ;; - *) - 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"; 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 -installMicrosoftSqlServerODBC() { - printf 'Installing the Microsoft SQL Server ODBC Driver\n' - case "$DISTRO" in - alpine) - # https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server#alpine17 - 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.9.1.1-1_amd64.apk - else - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/b/9/f/b9f3cce4-3925-46d4-9f46-da08869c6486/msodbcsql18_18.0.1.1-1_amd64.apk - fi - printf '\n' | apk add --allow-untrusted /tmp/src/msodbcsql.apk - rm -rf /tmp/src/msodbcsql.apk - ;; - debian) - # https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server#debian17 - printf -- '- installing the Microsoft APT key\n' - if test $DISTRO_VERSION_NUMBER -ge 11; then - # apt-key is deprecated - curl -sSLf -o /etc/apt/trusted.gpg.d/microsoft.asc https://packages.microsoft.com/keys/microsoft.asc - else - 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 && $DISTRO_VERSION_NUMBER -le 11; then - # On Debian 9 and 11 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; 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_dir="$(getPackageSource https://aomedia.googlesource.com/aom/+archive/v3.3.0.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://code.videolan.org/videolan/dav1d/-/archive/0.9.2/dav1d-0.9.2.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; 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/25d0a5110be796eef47004412baf43333d9ecf26.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/v0.9.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 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 a bundled PHP module given its handle -# -# Arguments: -# $1: the handle of the PHP module -# -# Set: -# UNNEEDED_PACKAGE_LINKS -# -# Output: -# Nothing -installBundledModule() { - printf '### INSTALLING BUNDLED MODULE %s ###\n' "$1" - if test -n "$(getWantedPHPModuleVersion "$1")"; then - printf '### WARNING the module "%s" is bundled with PHP, you can NOT specify a version for it\n' "$1" >&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 - ;; - 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 - ;; - 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 - 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 -} - -# 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="$(resolveWantedPHPModuleVersion "$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 - 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.30.3 - 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 - fi - ;; - decimal) - case "$DISTRO" in - alpine) - if ! test -f /usr/local/lib/libmpdec.so; then - installRemoteModule_src="$(getPackageSource https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-2.5.1.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure --disable-cxx - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - ;; - esac - ;; - ds) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=1.3.0 - 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 - 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.20/gearmand-1.1.20.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=71b5f9001512e16d3cf4657b517e8a051d6ef36f - 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"; then - # See https://github.com/protocolbuffers/protobuf/issues/10619 - installRemoteModule_version=1.55.0 - 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 - ;; - 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 - ;; - 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 - fi - 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 - ;; - oauth) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.3 - fi - 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 - 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 - # 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 - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '22.8.0') -ge 0; then - #enable hook curl support? - addConfigureOption enable-hook-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - else - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '4.8.0') -ge 0; then - # enable postgres support? - addConfigureOption with-postgres yes - fi - fi - ;; - opentelemetry) - 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 - ;; - 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 -le 506; then - installRemoteModule_version=3.12.4 - else - # See https://github.com/protocolbuffers/protobuf/issues/10619 - installRemoteModule_version=3.23.2 - 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 - 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' - 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 - ;; - 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 - installRemoteModule_version=0.9.0 - 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 -le 506; then - installRemoteModule_version=2.4.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.13 - 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 - 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 - 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 -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 yes - # 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 yes - # 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 yes - # 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 yes - 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 - ;; - 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 - ;; - 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" - checkModuleWorking "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - enablePhpExtension "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" -} - -# 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) - 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 -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 - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - case "$DISTRO" in - alpine) - apk del --purge $PACKAGES_VOLATILE - ;; - debian) - DEBIAN_FRONTEND=noninteractive apt-get remove --purge -y $PACKAGES_VOLATILE - ;; - esac - fi - if test -n "$PACKAGES_PREVIOUS"; then - case "$DISTRO" in - debian) - printf '### RESTORING PREVIOUSLY INSTALLED PACKAGES ###\n' - DEBIAN_FRONTEND=noninteractive apt-get install -qqy --no-install-recommends --no-upgrade $IPE_APTGET_INSTALLOPTIONS $PACKAGES_PREVIOUS - ;; - esac - fi - 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) ;; - *) - 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/apps/php7/7.4.33/build/php/extensions/install.sh b/apps/php7/7.4.33/build/php/extensions/install.sh deleted file mode 100644 index 1507b0ed..00000000 --- a/apps/php7/7.4.33/build/php/extensions/install.sh +++ /dev/null @@ -1,741 +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 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 ----------" - install-php-extensions sourceguardian -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_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 7 0 - 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 >= 7.0.0, installed version is ${PHP_VERSION}" - fi -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/apps/php7/7.4.33/build/php/extensions/memcache-2.2.6.tgz b/apps/php7/7.4.33/build/php/extensions/memcache-2.2.6.tgz deleted file mode 100644 index 841d0296..00000000 Binary files a/apps/php7/7.4.33/build/php/extensions/memcache-2.2.6.tgz and /dev/null differ diff --git a/apps/php7/7.4.33/build/php/extensions/memcache-4.0.5.2.tgz b/apps/php7/7.4.33/build/php/extensions/memcache-4.0.5.2.tgz deleted file mode 100644 index 1f7d370b..00000000 Binary files a/apps/php7/7.4.33/build/php/extensions/memcache-4.0.5.2.tgz and /dev/null differ diff --git a/apps/php7/7.4.33/build/php/extensions/mongodb-1.7.4.tgz b/apps/php7/7.4.33/build/php/extensions/mongodb-1.7.4.tgz deleted file mode 100644 index 94528560..00000000 Binary files a/apps/php7/7.4.33/build/php/extensions/mongodb-1.7.4.tgz and /dev/null differ diff --git a/apps/php7/7.4.33/build/php/extensions/redis-5.3.7.tgz b/apps/php7/7.4.33/build/php/extensions/redis-5.3.7.tgz deleted file mode 100644 index db2187b4..00000000 Binary files a/apps/php7/7.4.33/build/php/extensions/redis-5.3.7.tgz and /dev/null differ diff --git a/apps/php7/7.4.33/build/php/extensions/swoole-2.0.11.tgz b/apps/php7/7.4.33/build/php/extensions/swoole-2.0.11.tgz deleted file mode 100644 index a155450c..00000000 Binary files a/apps/php7/7.4.33/build/php/extensions/swoole-2.0.11.tgz and /dev/null differ diff --git a/apps/php7/7.4.33/build/php/extensions/swoole-4.8.11.tgz b/apps/php7/7.4.33/build/php/extensions/swoole-4.8.11.tgz deleted file mode 100644 index 01674cdc..00000000 Binary files a/apps/php7/7.4.33/build/php/extensions/swoole-4.8.11.tgz and /dev/null differ diff --git a/apps/php7/7.4.33/build/php/extensions/xdebug-2.5.5.tgz b/apps/php7/7.4.33/build/php/extensions/xdebug-2.5.5.tgz deleted file mode 100644 index d62c7ff6..00000000 Binary files a/apps/php7/7.4.33/build/php/extensions/xdebug-2.5.5.tgz and /dev/null differ diff --git a/apps/php7/7.4.33/build/php/extensions/xdebug-2.6.1.tgz b/apps/php7/7.4.33/build/php/extensions/xdebug-2.6.1.tgz deleted file mode 100644 index c756fba3..00000000 Binary files a/apps/php7/7.4.33/build/php/extensions/xdebug-2.6.1.tgz and /dev/null differ diff --git a/apps/php7/7.4.33/build/php/extensions/xdebug-2.9.2.tgz b/apps/php7/7.4.33/build/php/extensions/xdebug-2.9.2.tgz deleted file mode 100644 index 8131fff3..00000000 Binary files a/apps/php7/7.4.33/build/php/extensions/xdebug-2.9.2.tgz and /dev/null differ diff --git a/apps/php7/7.4.33/build/php/extensions/xhprof-2.2.0.tgz b/apps/php7/7.4.33/build/php/extensions/xhprof-2.2.0.tgz deleted file mode 100644 index 2614df31..00000000 Binary files a/apps/php7/7.4.33/build/php/extensions/xhprof-2.2.0.tgz and /dev/null differ diff --git a/apps/php7/7.4.33/build/php/extensions/yaf-2.3.5.tgz b/apps/php7/7.4.33/build/php/extensions/yaf-2.3.5.tgz deleted file mode 100644 index d965a0f1..00000000 Binary files a/apps/php7/7.4.33/build/php/extensions/yaf-2.3.5.tgz and /dev/null differ diff --git a/apps/php7/7.4.33/build/php/php-fpm.conf b/apps/php7/7.4.33/build/php/php-fpm.conf deleted file mode 100644 index 13183589..00000000 --- a/apps/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/apps/php7/7.4.33/build/php/php.ini b/apps/php7/7.4.33/build/php/php.ini deleted file mode 100644 index b6b0aee6..00000000 --- a/apps/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/apps/php7/7.4.33/conf/php-fpm.conf b/apps/php7/7.4.33/conf/php-fpm.conf deleted file mode 100644 index 13183589..00000000 --- a/apps/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/apps/php7/7.4.33/conf/php.ini b/apps/php7/7.4.33/conf/php.ini deleted file mode 100644 index b6b0aee6..00000000 --- a/apps/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/apps/php7/7.4.33/data.yml b/apps/php7/7.4.33/data.yml deleted file mode 100755 index 0123da18..00000000 --- a/apps/php7/7.4.33/data.yml +++ /dev/null @@ -1,9 +0,0 @@ -additionalProperties: - formFields: - - default: 9000 - envKey: PANEL_APP_PORT_HTTP - labelEn: PHP-FPM Port - labelZh: PHP-FPM 端口 - required: true - rule: paramPort - type: number diff --git a/apps/php7/7.4.33/docker-compose.yml b/apps/php7/7.4.33/docker-compose.yml deleted file mode 100644 index 9173c14e..00000000 --- a/apps/php7/7.4.33/docker-compose.yml +++ /dev/null @@ -1,22 +0,0 @@ -version: '3' -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/apps/php7/README.md b/apps/php7/README.md deleted file mode 100644 index b7d17a6e..00000000 --- a/apps/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/apps/php7/data.yml b/apps/php7/data.yml deleted file mode 100755 index 1fe015ae..00000000 --- a/apps/php7/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: PHP 7 -tags: - - 运行环境 -title: PHP7 运行环境 -type: 运行环境 -description: PHP7 运行环境 -additionalProperties: - key: php7 - name: PHP 7 - tags: - - Runtime - shortDescZh: PHP7 运行环境 - shortDescEn: PHP7 Runtime - type: php - crossVersionUpdate: false - limit: 0 - recommend: 101 - website: https://www.php.net/ - github: https://github.com/php/php-src - document: https://www.php.net/docs.php diff --git a/apps/php7/logo.png b/apps/php7/logo.png deleted file mode 100644 index cfa7782d..00000000 Binary files a/apps/php7/logo.png and /dev/null differ diff --git a/apps/php8/8.0.30/build/.env b/apps/php8/8.0.30/build/.env deleted file mode 100644 index 19953037..00000000 --- a/apps/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/apps/php8/8.0.30/build/config.json b/apps/php8/8.0.30/build/config.json deleted file mode 100644 index bda2e4eb..00000000 --- a/apps/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": "sg11", - "value": "sourceguardian" - }, - { - "label": "imagick", - "value": "imagick" - } - ], - "envKey": "PHP_EXTENSIONS", - "edit": true - } - ] -} \ No newline at end of file diff --git a/apps/php8/8.0.30/build/docker-compose.yml b/apps/php8/8.0.30/build/docker-compose.yml deleted file mode 100644 index 76332ace..00000000 --- a/apps/php8/8.0.30/build/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -version: '3' -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/apps/php8/8.0.30/build/php/Dockerfile b/apps/php8/8.0.30/build/php/Dockerfile deleted file mode 100644 index e0e0cb64..00000000 --- a/apps/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/apps/php8/8.0.30/build/php/extensions/event-3.0.5.tgz b/apps/php8/8.0.30/build/php/extensions/event-3.0.5.tgz deleted file mode 100644 index 98cb5768..00000000 Binary files a/apps/php8/8.0.30/build/php/extensions/event-3.0.5.tgz and /dev/null differ diff --git a/apps/php8/8.0.30/build/php/extensions/install-composer.sh b/apps/php8/8.0.30/build/php/extensions/install-composer.sh deleted file mode 100644 index 34074732..00000000 --- a/apps/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/apps/php8/8.0.30/build/php/extensions/install-php-extensions b/apps/php8/8.0.30/build/php/extensions/install-php-extensions deleted file mode 100644 index 164c8d47..00000000 --- a/apps/php8/8.0.30/build/php/extensions/install-php-extensions +++ /dev/null @@ -1,4157 +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.1.28 - -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 wanted PHP module version, resolving it if it starts with '^' -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The version to be used -resolveWantedPHPModuleVersion() { - resolveWantedPHPModuleVersion_raw="$(getWantedPHPModuleVersion "$1")" - resolveWantedPHPModuleVersion_afterCaret="${resolveWantedPHPModuleVersion_raw#^}" - if test "$resolveWantedPHPModuleVersion_raw" = "$resolveWantedPHPModuleVersion_afterCaret"; then - printf '%s' "$resolveWantedPHPModuleVersion_raw" - return - fi - resolveWantedPHPModuleVersion_xml="$(curl -sSLf "http://pecl.php.net/rest/r/$1/allreleases.xml")" - resolveWantedPHPModuleVersion_versions="$(printf '%s' "$resolveWantedPHPModuleVersion_xml" | tr -s ' \t\r\n' ' ' | sed -r 's# *<#\n<#g' | grep '' | sed 's###g' | sed 's# ##g')" - resetIFS - for resolveWantedPHPModuleVersion_version in $resolveWantedPHPModuleVersion_versions; do - resolveWantedPHPModuleVersion_suffix="${resolveWantedPHPModuleVersion_version#$resolveWantedPHPModuleVersion_afterCaret}" - if test "$resolveWantedPHPModuleVersion_version" != "${resolveWantedPHPModuleVersion_version#$resolveWantedPHPModuleVersion_afterCaret.}"; then - # Example: looking for 1.0, found 1.0.1 - printf '%s' "$resolveWantedPHPModuleVersion_version" - return - fi - done - for resolveWantedPHPModuleVersion_version in $resolveWantedPHPModuleVersion_versions; do - resolveWantedPHPModuleVersion_suffix="${resolveWantedPHPModuleVersion_version#$resolveWantedPHPModuleVersion_afterCaret}" - if test "$resolveWantedPHPModuleVersion_version" = "$resolveWantedPHPModuleVersion_suffix"; then - continue - fi - if test -z "$resolveWantedPHPModuleVersion_suffix"; then - # Example: looking for 1.0, found exactly it - printf '%s' "$resolveWantedPHPModuleVersion_version" - return - fi - case "$resolveWantedPHPModuleVersion_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' "$resolveWantedPHPModuleVersion_version" - return - ;; - esac - done - printf 'Unable to find a version of "%s" compatible with "%s"\nAvailable versions are:\n%s\n' "$1" "$resolveWantedPHPModuleVersion_raw" "$resolveWantedPHPModuleVersion_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 - peclStabilityFlagToVersion_url="http://pecl.php.net/rest/r/$1/$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='libssl1.0' - 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_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - ddtrace@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent curl" - 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) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmpdec[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmpdec-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" - ;; - 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 ! 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" - ;; - 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" - ;; - 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" - ;; - 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" - ;; - 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++" - ;; - 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" - 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 - ;; - relay@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs zstd-libs" - if test $DISTRO_MAJMIN_VERSION -ge 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libssl1.1" - fi - ;; - 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" - ;; - 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 lapack libexecinfo openblas" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lapack-dev libexecinfo-dev openblas-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 - ;; - tensor@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapacke libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblapack-dev libopenblas-dev liblapacke-dev" - if test $DISTRO_VERSION_NUMBER -ge 11; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-10" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-10-dev" - elif test $DISTRO_VERSION_NUMBER -ge 10; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-8" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-8-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" - ;; - 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" - ;; - 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 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" - ;; - *) - 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"; 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 -installMicrosoftSqlServerODBC() { - printf 'Installing the Microsoft SQL Server ODBC Driver\n' - case "$DISTRO" in - alpine) - # https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server#alpine17 - 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.9.1.1-1_amd64.apk - else - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/b/9/f/b9f3cce4-3925-46d4-9f46-da08869c6486/msodbcsql18_18.0.1.1-1_amd64.apk - fi - printf '\n' | apk add --allow-untrusted /tmp/src/msodbcsql.apk - rm -rf /tmp/src/msodbcsql.apk - ;; - debian) - # https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server#debian17 - printf -- '- installing the Microsoft APT key\n' - if test $DISTRO_VERSION_NUMBER -ge 11; then - # apt-key is deprecated - curl -sSLf -o /etc/apt/trusted.gpg.d/microsoft.asc https://packages.microsoft.com/keys/microsoft.asc - else - 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 && $DISTRO_VERSION_NUMBER -le 11; then - # On Debian 9 and 11 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; 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_dir="$(getPackageSource https://aomedia.googlesource.com/aom/+archive/v3.3.0.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://code.videolan.org/videolan/dav1d/-/archive/0.9.2/dav1d-0.9.2.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; 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/25d0a5110be796eef47004412baf43333d9ecf26.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/v0.9.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 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 a bundled PHP module given its handle -# -# Arguments: -# $1: the handle of the PHP module -# -# Set: -# UNNEEDED_PACKAGE_LINKS -# -# Output: -# Nothing -installBundledModule() { - printf '### INSTALLING BUNDLED MODULE %s ###\n' "$1" - if test -n "$(getWantedPHPModuleVersion "$1")"; then - printf '### WARNING the module "%s" is bundled with PHP, you can NOT specify a version for it\n' "$1" >&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 - ;; - 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 - ;; - 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 - 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 -} - -# 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="$(resolveWantedPHPModuleVersion "$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 - 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.30.3 - 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 - fi - ;; - decimal) - case "$DISTRO" in - alpine) - if ! test -f /usr/local/lib/libmpdec.so; then - installRemoteModule_src="$(getPackageSource https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-2.5.1.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure --disable-cxx - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - ;; - esac - ;; - ds) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=1.3.0 - 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 - 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.20/gearmand-1.1.20.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=71b5f9001512e16d3cf4657b517e8a051d6ef36f - 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"; then - # See https://github.com/protocolbuffers/protobuf/issues/10619 - installRemoteModule_version=1.55.0 - 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 - ;; - 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 - ;; - 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 - fi - 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 - ;; - oauth) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.3 - fi - 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 - 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 - # 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 - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '22.8.0') -ge 0; then - #enable hook curl support? - addConfigureOption enable-hook-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - else - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '4.8.0') -ge 0; then - # enable postgres support? - addConfigureOption with-postgres yes - fi - fi - ;; - opentelemetry) - 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 - ;; - 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 -le 506; then - installRemoteModule_version=3.12.4 - else - # See https://github.com/protocolbuffers/protobuf/issues/10619 - installRemoteModule_version=3.23.2 - 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 - 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' - 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 - ;; - 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 - installRemoteModule_version=0.9.0 - 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 -le 506; then - installRemoteModule_version=2.4.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.13 - 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 - 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 - 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 -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 yes - # 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 yes - # 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 yes - # 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 yes - 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 - ;; - 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 - ;; - 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" - checkModuleWorking "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - enablePhpExtension "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" -} - -# 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) - 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 -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 - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - case "$DISTRO" in - alpine) - apk del --purge $PACKAGES_VOLATILE - ;; - debian) - DEBIAN_FRONTEND=noninteractive apt-get remove --purge -y $PACKAGES_VOLATILE - ;; - esac - fi - if test -n "$PACKAGES_PREVIOUS"; then - case "$DISTRO" in - debian) - printf '### RESTORING PREVIOUSLY INSTALLED PACKAGES ###\n' - DEBIAN_FRONTEND=noninteractive apt-get install -qqy --no-install-recommends --no-upgrade $IPE_APTGET_INSTALLOPTIONS $PACKAGES_PREVIOUS - ;; - esac - fi - 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) ;; - *) - 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/apps/php8/8.0.30/build/php/extensions/install.sh b/apps/php8/8.0.30/build/php/extensions/install.sh deleted file mode 100644 index 7bdd718f..00000000 --- a/apps/php8/8.0.30/build/php/extensions/install.sh +++ /dev/null @@ -1,701 +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 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-5.2.2 -# -# Param 1: Package name with version -# Param 2: enable options -# -installExtensionFromTgz() -{ - tgzName=$1 - para1= - extensionName="${tgzName%%-*}" - if [ $2 ]; then - para1=$2 - fi - mkdir ${extensionName} - tar -xf ${tgzName}.tgz -C ${extensionName} --strip-components=1 - ( cd ${extensionName} && phpize && ./configure ${para1} && 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 ----------" - install-php-extensions sourceguardian -fi - -if [[ -z "${EXTENSIONS##*,memcached,*}" ]]; then - echo "---------- Install memcached ----------" - install-php-extensions memcached -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_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 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##*,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##*,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 8 0 - 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 >= 8.0.0, installed version is ${PHP_VERSION}" - fi -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 ----------" - install-php-extensions pdo_sqlsrv - 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-5.3.7 -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 ----------" - installExtensionFromTgz event-3.0.5 "--ini-name event.ini" -fi - -if [[ -z "${EXTENSIONS##*,mongodb,*}" ]]; then - echo "---------- Install mongodb ----------" - pecl install mongodb - 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 ----------" - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - installExtensionFromTgz swoole-5.0.2 --enable-openssl - 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 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 - apk del .build-deps \ - && docker-php-source delete -fi diff --git a/apps/php8/8.0.30/build/php/extensions/redis-5.3.7.tgz b/apps/php8/8.0.30/build/php/extensions/redis-5.3.7.tgz deleted file mode 100644 index db2187b4..00000000 Binary files a/apps/php8/8.0.30/build/php/extensions/redis-5.3.7.tgz and /dev/null differ diff --git a/apps/php8/8.0.30/build/php/extensions/swoole-5.0.2.tgz b/apps/php8/8.0.30/build/php/extensions/swoole-5.0.2.tgz deleted file mode 100644 index 7e42418c..00000000 Binary files a/apps/php8/8.0.30/build/php/extensions/swoole-5.0.2.tgz and /dev/null differ diff --git a/apps/php8/8.0.30/build/php/extensions/xdebug-3.2.0.tgz b/apps/php8/8.0.30/build/php/extensions/xdebug-3.2.0.tgz deleted file mode 100644 index 4023612c..00000000 Binary files a/apps/php8/8.0.30/build/php/extensions/xdebug-3.2.0.tgz and /dev/null differ diff --git a/apps/php8/8.0.30/build/php/php-fpm.conf b/apps/php8/8.0.30/build/php/php-fpm.conf deleted file mode 100644 index 13183589..00000000 --- a/apps/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/apps/php8/8.0.30/build/php/php.ini b/apps/php8/8.0.30/build/php/php.ini deleted file mode 100644 index 82b728e2..00000000 --- a/apps/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/apps/php8/8.0.30/conf/php-fpm.conf b/apps/php8/8.0.30/conf/php-fpm.conf deleted file mode 100644 index 13183589..00000000 --- a/apps/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/apps/php8/8.0.30/conf/php.ini b/apps/php8/8.0.30/conf/php.ini deleted file mode 100644 index b6b0aee6..00000000 --- a/apps/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/apps/php8/8.0.30/data.yml b/apps/php8/8.0.30/data.yml deleted file mode 100755 index 0123da18..00000000 --- a/apps/php8/8.0.30/data.yml +++ /dev/null @@ -1,9 +0,0 @@ -additionalProperties: - formFields: - - default: 9000 - envKey: PANEL_APP_PORT_HTTP - labelEn: PHP-FPM Port - labelZh: PHP-FPM 端口 - required: true - rule: paramPort - type: number diff --git a/apps/php8/8.0.30/docker-compose.yml b/apps/php8/8.0.30/docker-compose.yml deleted file mode 100644 index 9173c14e..00000000 --- a/apps/php8/8.0.30/docker-compose.yml +++ /dev/null @@ -1,22 +0,0 @@ -version: '3' -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/apps/php8/8.1.23/build/.env b/apps/php8/8.1.23/build/.env deleted file mode 100644 index cd280b4e..00000000 --- a/apps/php8/8.1.23/build/.env +++ /dev/null @@ -1,14 +0,0 @@ -CONTAINER_PACKAGE_URL=mirrors.ustc.edu.cn - -PHP_VERSION=8.1.23 -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.23 -INSTALL_SUPERVISOR=0 \ No newline at end of file diff --git a/apps/php8/8.1.23/build/config.json b/apps/php8/8.1.23/build/config.json deleted file mode 100644 index bda2e4eb..00000000 --- a/apps/php8/8.1.23/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": "sg11", - "value": "sourceguardian" - }, - { - "label": "imagick", - "value": "imagick" - } - ], - "envKey": "PHP_EXTENSIONS", - "edit": true - } - ] -} \ No newline at end of file diff --git a/apps/php8/8.1.23/build/docker-compose.yml b/apps/php8/8.1.23/build/docker-compose.yml deleted file mode 100644 index 76332ace..00000000 --- a/apps/php8/8.1.23/build/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -version: '3' -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/apps/php8/8.1.23/build/php/Dockerfile b/apps/php8/8.1.23/build/php/Dockerfile deleted file mode 100644 index e0e0cb64..00000000 --- a/apps/php8/8.1.23/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/apps/php8/8.1.23/build/php/extensions/event-3.0.5.tgz b/apps/php8/8.1.23/build/php/extensions/event-3.0.5.tgz deleted file mode 100644 index 98cb5768..00000000 Binary files a/apps/php8/8.1.23/build/php/extensions/event-3.0.5.tgz and /dev/null differ diff --git a/apps/php8/8.1.23/build/php/extensions/install-composer.sh b/apps/php8/8.1.23/build/php/extensions/install-composer.sh deleted file mode 100644 index 34074732..00000000 --- a/apps/php8/8.1.23/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/apps/php8/8.1.23/build/php/extensions/install-php-extensions b/apps/php8/8.1.23/build/php/extensions/install-php-extensions deleted file mode 100644 index 164c8d47..00000000 --- a/apps/php8/8.1.23/build/php/extensions/install-php-extensions +++ /dev/null @@ -1,4157 +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.1.28 - -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 wanted PHP module version, resolving it if it starts with '^' -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The version to be used -resolveWantedPHPModuleVersion() { - resolveWantedPHPModuleVersion_raw="$(getWantedPHPModuleVersion "$1")" - resolveWantedPHPModuleVersion_afterCaret="${resolveWantedPHPModuleVersion_raw#^}" - if test "$resolveWantedPHPModuleVersion_raw" = "$resolveWantedPHPModuleVersion_afterCaret"; then - printf '%s' "$resolveWantedPHPModuleVersion_raw" - return - fi - resolveWantedPHPModuleVersion_xml="$(curl -sSLf "http://pecl.php.net/rest/r/$1/allreleases.xml")" - resolveWantedPHPModuleVersion_versions="$(printf '%s' "$resolveWantedPHPModuleVersion_xml" | tr -s ' \t\r\n' ' ' | sed -r 's# *<#\n<#g' | grep '' | sed 's###g' | sed 's# ##g')" - resetIFS - for resolveWantedPHPModuleVersion_version in $resolveWantedPHPModuleVersion_versions; do - resolveWantedPHPModuleVersion_suffix="${resolveWantedPHPModuleVersion_version#$resolveWantedPHPModuleVersion_afterCaret}" - if test "$resolveWantedPHPModuleVersion_version" != "${resolveWantedPHPModuleVersion_version#$resolveWantedPHPModuleVersion_afterCaret.}"; then - # Example: looking for 1.0, found 1.0.1 - printf '%s' "$resolveWantedPHPModuleVersion_version" - return - fi - done - for resolveWantedPHPModuleVersion_version in $resolveWantedPHPModuleVersion_versions; do - resolveWantedPHPModuleVersion_suffix="${resolveWantedPHPModuleVersion_version#$resolveWantedPHPModuleVersion_afterCaret}" - if test "$resolveWantedPHPModuleVersion_version" = "$resolveWantedPHPModuleVersion_suffix"; then - continue - fi - if test -z "$resolveWantedPHPModuleVersion_suffix"; then - # Example: looking for 1.0, found exactly it - printf '%s' "$resolveWantedPHPModuleVersion_version" - return - fi - case "$resolveWantedPHPModuleVersion_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' "$resolveWantedPHPModuleVersion_version" - return - ;; - esac - done - printf 'Unable to find a version of "%s" compatible with "%s"\nAvailable versions are:\n%s\n' "$1" "$resolveWantedPHPModuleVersion_raw" "$resolveWantedPHPModuleVersion_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 - peclStabilityFlagToVersion_url="http://pecl.php.net/rest/r/$1/$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='libssl1.0' - 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_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - ddtrace@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent curl" - 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) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmpdec[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmpdec-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" - ;; - 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 ! 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" - ;; - 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" - ;; - 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" - ;; - 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" - ;; - 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++" - ;; - 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" - 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 - ;; - relay@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs zstd-libs" - if test $DISTRO_MAJMIN_VERSION -ge 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libssl1.1" - fi - ;; - 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" - ;; - 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 lapack libexecinfo openblas" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lapack-dev libexecinfo-dev openblas-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 - ;; - tensor@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapacke libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblapack-dev libopenblas-dev liblapacke-dev" - if test $DISTRO_VERSION_NUMBER -ge 11; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-10" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-10-dev" - elif test $DISTRO_VERSION_NUMBER -ge 10; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-8" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-8-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" - ;; - 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" - ;; - 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 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" - ;; - *) - 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"; 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 -installMicrosoftSqlServerODBC() { - printf 'Installing the Microsoft SQL Server ODBC Driver\n' - case "$DISTRO" in - alpine) - # https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server#alpine17 - 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.9.1.1-1_amd64.apk - else - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/b/9/f/b9f3cce4-3925-46d4-9f46-da08869c6486/msodbcsql18_18.0.1.1-1_amd64.apk - fi - printf '\n' | apk add --allow-untrusted /tmp/src/msodbcsql.apk - rm -rf /tmp/src/msodbcsql.apk - ;; - debian) - # https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server#debian17 - printf -- '- installing the Microsoft APT key\n' - if test $DISTRO_VERSION_NUMBER -ge 11; then - # apt-key is deprecated - curl -sSLf -o /etc/apt/trusted.gpg.d/microsoft.asc https://packages.microsoft.com/keys/microsoft.asc - else - 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 && $DISTRO_VERSION_NUMBER -le 11; then - # On Debian 9 and 11 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; 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_dir="$(getPackageSource https://aomedia.googlesource.com/aom/+archive/v3.3.0.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://code.videolan.org/videolan/dav1d/-/archive/0.9.2/dav1d-0.9.2.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; 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/25d0a5110be796eef47004412baf43333d9ecf26.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/v0.9.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 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 a bundled PHP module given its handle -# -# Arguments: -# $1: the handle of the PHP module -# -# Set: -# UNNEEDED_PACKAGE_LINKS -# -# Output: -# Nothing -installBundledModule() { - printf '### INSTALLING BUNDLED MODULE %s ###\n' "$1" - if test -n "$(getWantedPHPModuleVersion "$1")"; then - printf '### WARNING the module "%s" is bundled with PHP, you can NOT specify a version for it\n' "$1" >&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 - ;; - 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 - ;; - 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 - 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 -} - -# 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="$(resolveWantedPHPModuleVersion "$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 - 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.30.3 - 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 - fi - ;; - decimal) - case "$DISTRO" in - alpine) - if ! test -f /usr/local/lib/libmpdec.so; then - installRemoteModule_src="$(getPackageSource https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-2.5.1.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure --disable-cxx - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - ;; - esac - ;; - ds) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=1.3.0 - 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 - 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.20/gearmand-1.1.20.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=71b5f9001512e16d3cf4657b517e8a051d6ef36f - 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"; then - # See https://github.com/protocolbuffers/protobuf/issues/10619 - installRemoteModule_version=1.55.0 - 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 - ;; - 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 - ;; - 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 - fi - 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 - ;; - oauth) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.3 - fi - 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 - 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 - # 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 - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '22.8.0') -ge 0; then - #enable hook curl support? - addConfigureOption enable-hook-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - else - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '4.8.0') -ge 0; then - # enable postgres support? - addConfigureOption with-postgres yes - fi - fi - ;; - opentelemetry) - 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 - ;; - 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 -le 506; then - installRemoteModule_version=3.12.4 - else - # See https://github.com/protocolbuffers/protobuf/issues/10619 - installRemoteModule_version=3.23.2 - 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 - 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' - 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 - ;; - 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 - installRemoteModule_version=0.9.0 - 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 -le 506; then - installRemoteModule_version=2.4.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.13 - 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 - 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 - 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 -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 yes - # 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 yes - # 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 yes - # 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 yes - 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 - ;; - 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 - ;; - 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" - checkModuleWorking "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - enablePhpExtension "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" -} - -# 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) - 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 -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 - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - case "$DISTRO" in - alpine) - apk del --purge $PACKAGES_VOLATILE - ;; - debian) - DEBIAN_FRONTEND=noninteractive apt-get remove --purge -y $PACKAGES_VOLATILE - ;; - esac - fi - if test -n "$PACKAGES_PREVIOUS"; then - case "$DISTRO" in - debian) - printf '### RESTORING PREVIOUSLY INSTALLED PACKAGES ###\n' - DEBIAN_FRONTEND=noninteractive apt-get install -qqy --no-install-recommends --no-upgrade $IPE_APTGET_INSTALLOPTIONS $PACKAGES_PREVIOUS - ;; - esac - fi - 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) ;; - *) - 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/apps/php8/8.1.23/build/php/extensions/install.sh b/apps/php8/8.1.23/build/php/extensions/install.sh deleted file mode 100644 index 7bdd718f..00000000 --- a/apps/php8/8.1.23/build/php/extensions/install.sh +++ /dev/null @@ -1,701 +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 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-5.2.2 -# -# Param 1: Package name with version -# Param 2: enable options -# -installExtensionFromTgz() -{ - tgzName=$1 - para1= - extensionName="${tgzName%%-*}" - if [ $2 ]; then - para1=$2 - fi - mkdir ${extensionName} - tar -xf ${tgzName}.tgz -C ${extensionName} --strip-components=1 - ( cd ${extensionName} && phpize && ./configure ${para1} && 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 ----------" - install-php-extensions sourceguardian -fi - -if [[ -z "${EXTENSIONS##*,memcached,*}" ]]; then - echo "---------- Install memcached ----------" - install-php-extensions memcached -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_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 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##*,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##*,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 8 0 - 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 >= 8.0.0, installed version is ${PHP_VERSION}" - fi -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 ----------" - install-php-extensions pdo_sqlsrv - 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-5.3.7 -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 ----------" - installExtensionFromTgz event-3.0.5 "--ini-name event.ini" -fi - -if [[ -z "${EXTENSIONS##*,mongodb,*}" ]]; then - echo "---------- Install mongodb ----------" - pecl install mongodb - 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 ----------" - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - installExtensionFromTgz swoole-5.0.2 --enable-openssl - 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 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 - apk del .build-deps \ - && docker-php-source delete -fi diff --git a/apps/php8/8.1.23/build/php/extensions/redis-5.3.7.tgz b/apps/php8/8.1.23/build/php/extensions/redis-5.3.7.tgz deleted file mode 100644 index db2187b4..00000000 Binary files a/apps/php8/8.1.23/build/php/extensions/redis-5.3.7.tgz and /dev/null differ diff --git a/apps/php8/8.1.23/build/php/extensions/swoole-5.0.2.tgz b/apps/php8/8.1.23/build/php/extensions/swoole-5.0.2.tgz deleted file mode 100644 index 7e42418c..00000000 Binary files a/apps/php8/8.1.23/build/php/extensions/swoole-5.0.2.tgz and /dev/null differ diff --git a/apps/php8/8.1.23/build/php/extensions/xdebug-3.2.0.tgz b/apps/php8/8.1.23/build/php/extensions/xdebug-3.2.0.tgz deleted file mode 100644 index 4023612c..00000000 Binary files a/apps/php8/8.1.23/build/php/extensions/xdebug-3.2.0.tgz and /dev/null differ diff --git a/apps/php8/8.1.23/build/php/php-fpm.conf b/apps/php8/8.1.23/build/php/php-fpm.conf deleted file mode 100644 index 13183589..00000000 --- a/apps/php8/8.1.23/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/apps/php8/8.1.23/build/php/php.ini b/apps/php8/8.1.23/build/php/php.ini deleted file mode 100644 index 82b728e2..00000000 --- a/apps/php8/8.1.23/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/apps/php8/8.1.23/conf/php-fpm.conf b/apps/php8/8.1.23/conf/php-fpm.conf deleted file mode 100644 index 13183589..00000000 --- a/apps/php8/8.1.23/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/apps/php8/8.1.23/conf/php.ini b/apps/php8/8.1.23/conf/php.ini deleted file mode 100644 index b6b0aee6..00000000 --- a/apps/php8/8.1.23/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/apps/php8/8.1.23/data.yml b/apps/php8/8.1.23/data.yml deleted file mode 100755 index 0123da18..00000000 --- a/apps/php8/8.1.23/data.yml +++ /dev/null @@ -1,9 +0,0 @@ -additionalProperties: - formFields: - - default: 9000 - envKey: PANEL_APP_PORT_HTTP - labelEn: PHP-FPM Port - labelZh: PHP-FPM 端口 - required: true - rule: paramPort - type: number diff --git a/apps/php8/8.1.23/docker-compose.yml b/apps/php8/8.1.23/docker-compose.yml deleted file mode 100644 index 9173c14e..00000000 --- a/apps/php8/8.1.23/docker-compose.yml +++ /dev/null @@ -1,22 +0,0 @@ -version: '3' -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/apps/php8/8.2.10/build/.env b/apps/php8/8.2.10/build/.env deleted file mode 100644 index 38a23597..00000000 --- a/apps/php8/8.2.10/build/.env +++ /dev/null @@ -1,14 +0,0 @@ -CONTAINER_PACKAGE_URL=mirrors.ustc.edu.cn - -PHP_VERSION=8.2.10 -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.10 -INSTALL_SUPERVISOR=0 \ No newline at end of file diff --git a/apps/php8/8.2.10/build/config.json b/apps/php8/8.2.10/build/config.json deleted file mode 100644 index bda2e4eb..00000000 --- a/apps/php8/8.2.10/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": "sg11", - "value": "sourceguardian" - }, - { - "label": "imagick", - "value": "imagick" - } - ], - "envKey": "PHP_EXTENSIONS", - "edit": true - } - ] -} \ No newline at end of file diff --git a/apps/php8/8.2.10/build/docker-compose.yml b/apps/php8/8.2.10/build/docker-compose.yml deleted file mode 100644 index 76332ace..00000000 --- a/apps/php8/8.2.10/build/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -version: '3' -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/apps/php8/8.2.10/build/php/Dockerfile b/apps/php8/8.2.10/build/php/Dockerfile deleted file mode 100644 index e0e0cb64..00000000 --- a/apps/php8/8.2.10/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/apps/php8/8.2.10/build/php/extensions/event-3.0.5.tgz b/apps/php8/8.2.10/build/php/extensions/event-3.0.5.tgz deleted file mode 100644 index 98cb5768..00000000 Binary files a/apps/php8/8.2.10/build/php/extensions/event-3.0.5.tgz and /dev/null differ diff --git a/apps/php8/8.2.10/build/php/extensions/install-composer.sh b/apps/php8/8.2.10/build/php/extensions/install-composer.sh deleted file mode 100644 index 34074732..00000000 --- a/apps/php8/8.2.10/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/apps/php8/8.2.10/build/php/extensions/install-php-extensions b/apps/php8/8.2.10/build/php/extensions/install-php-extensions deleted file mode 100644 index 164c8d47..00000000 --- a/apps/php8/8.2.10/build/php/extensions/install-php-extensions +++ /dev/null @@ -1,4157 +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.1.28 - -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 wanted PHP module version, resolving it if it starts with '^' -# -# Arguments: -# $1: the name of the module to be normalized -# -# Output: -# The version to be used -resolveWantedPHPModuleVersion() { - resolveWantedPHPModuleVersion_raw="$(getWantedPHPModuleVersion "$1")" - resolveWantedPHPModuleVersion_afterCaret="${resolveWantedPHPModuleVersion_raw#^}" - if test "$resolveWantedPHPModuleVersion_raw" = "$resolveWantedPHPModuleVersion_afterCaret"; then - printf '%s' "$resolveWantedPHPModuleVersion_raw" - return - fi - resolveWantedPHPModuleVersion_xml="$(curl -sSLf "http://pecl.php.net/rest/r/$1/allreleases.xml")" - resolveWantedPHPModuleVersion_versions="$(printf '%s' "$resolveWantedPHPModuleVersion_xml" | tr -s ' \t\r\n' ' ' | sed -r 's# *<#\n<#g' | grep '' | sed 's###g' | sed 's# ##g')" - resetIFS - for resolveWantedPHPModuleVersion_version in $resolveWantedPHPModuleVersion_versions; do - resolveWantedPHPModuleVersion_suffix="${resolveWantedPHPModuleVersion_version#$resolveWantedPHPModuleVersion_afterCaret}" - if test "$resolveWantedPHPModuleVersion_version" != "${resolveWantedPHPModuleVersion_version#$resolveWantedPHPModuleVersion_afterCaret.}"; then - # Example: looking for 1.0, found 1.0.1 - printf '%s' "$resolveWantedPHPModuleVersion_version" - return - fi - done - for resolveWantedPHPModuleVersion_version in $resolveWantedPHPModuleVersion_versions; do - resolveWantedPHPModuleVersion_suffix="${resolveWantedPHPModuleVersion_version#$resolveWantedPHPModuleVersion_afterCaret}" - if test "$resolveWantedPHPModuleVersion_version" = "$resolveWantedPHPModuleVersion_suffix"; then - continue - fi - if test -z "$resolveWantedPHPModuleVersion_suffix"; then - # Example: looking for 1.0, found exactly it - printf '%s' "$resolveWantedPHPModuleVersion_version" - return - fi - case "$resolveWantedPHPModuleVersion_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' "$resolveWantedPHPModuleVersion_version" - return - ;; - esac - done - printf 'Unable to find a version of "%s" compatible with "%s"\nAvailable versions are:\n%s\n' "$1" "$resolveWantedPHPModuleVersion_raw" "$resolveWantedPHPModuleVersion_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 - peclStabilityFlagToVersion_url="http://pecl.php.net/rest/r/$1/$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='libssl1.0' - 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_volatile="$buildRequiredPackageLists_volatile curl-dev" - ;; - ddtrace@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent curl" - 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) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent ^libmpdec[0-9]*$" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmpdec-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" - ;; - 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 ! 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" - ;; - 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" - ;; - 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" - ;; - 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" - ;; - 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++" - ;; - 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" - 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 - ;; - relay@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs zstd-libs" - if test $DISTRO_MAJMIN_VERSION -ge 317; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libssl1.1" - fi - ;; - 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" - ;; - 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 lapack libexecinfo openblas" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lapack-dev libexecinfo-dev openblas-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 - ;; - tensor@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapacke libopenblas-base" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblapack-dev libopenblas-dev liblapacke-dev" - if test $DISTRO_VERSION_NUMBER -ge 11; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-10" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-10-dev" - elif test $DISTRO_VERSION_NUMBER -ge 10; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-8" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-8-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" - ;; - 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" - ;; - 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 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" - ;; - *) - 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"; 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 -installMicrosoftSqlServerODBC() { - printf 'Installing the Microsoft SQL Server ODBC Driver\n' - case "$DISTRO" in - alpine) - # https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server#alpine17 - 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.9.1.1-1_amd64.apk - else - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/b/9/f/b9f3cce4-3925-46d4-9f46-da08869c6486/msodbcsql18_18.0.1.1-1_amd64.apk - fi - printf '\n' | apk add --allow-untrusted /tmp/src/msodbcsql.apk - rm -rf /tmp/src/msodbcsql.apk - ;; - debian) - # https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server#debian17 - printf -- '- installing the Microsoft APT key\n' - if test $DISTRO_VERSION_NUMBER -ge 11; then - # apt-key is deprecated - curl -sSLf -o /etc/apt/trusted.gpg.d/microsoft.asc https://packages.microsoft.com/keys/microsoft.asc - else - 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 && $DISTRO_VERSION_NUMBER -le 11; then - # On Debian 9 and 11 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; 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_dir="$(getPackageSource https://aomedia.googlesource.com/aom/+archive/v3.3.0.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://code.videolan.org/videolan/dav1d/-/archive/0.9.2/dav1d-0.9.2.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; 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/25d0a5110be796eef47004412baf43333d9ecf26.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/v0.9.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 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 a bundled PHP module given its handle -# -# Arguments: -# $1: the handle of the PHP module -# -# Set: -# UNNEEDED_PACKAGE_LINKS -# -# Output: -# Nothing -installBundledModule() { - printf '### INSTALLING BUNDLED MODULE %s ###\n' "$1" - if test -n "$(getWantedPHPModuleVersion "$1")"; then - printf '### WARNING the module "%s" is bundled with PHP, you can NOT specify a version for it\n' "$1" >&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 - ;; - 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 - ;; - 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 - 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 -} - -# 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="$(resolveWantedPHPModuleVersion "$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 - 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.30.3 - 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 - fi - ;; - decimal) - case "$DISTRO" in - alpine) - if ! test -f /usr/local/lib/libmpdec.so; then - installRemoteModule_src="$(getPackageSource https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-2.5.1.tar.gz)" - cd -- "$installRemoteModule_src" - ./configure --disable-cxx - make -j$(getProcessorCount) - make install - cd - >/dev/null - fi - ;; - esac - ;; - ds) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 702; then - installRemoteModule_version=1.3.0 - 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 - 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.20/gearmand-1.1.20.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=71b5f9001512e16d3cf4657b517e8a051d6ef36f - 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"; then - # See https://github.com/protocolbuffers/protobuf/issues/10619 - installRemoteModule_version=1.55.0 - 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 - ;; - 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 - ;; - 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 - fi - 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 - ;; - oauth) - if test -z "$installRemoteModule_version"; then - if test $PHP_MAJMIN_VERSION -le 506; then - installRemoteModule_version=1.2.3 - fi - 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 - 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 - # 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 - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '22.8.0') -ge 0; then - #enable hook curl support? - addConfigureOption enable-hook-curl yes - # enable postgres support? - addConfigureOption with-postgres yes - else - # enable json support? - addConfigureOption enable-swoole-json yes - # enable curl support? - addConfigureOption enable-swoole-curl yes - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '4.8.0') -ge 0; then - # enable postgres support? - addConfigureOption with-postgres yes - fi - fi - ;; - opentelemetry) - 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 - ;; - 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 -le 506; then - installRemoteModule_version=3.12.4 - else - # See https://github.com/protocolbuffers/protobuf/issues/10619 - installRemoteModule_version=3.23.2 - 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 - 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' - 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 - ;; - 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 - installRemoteModule_version=0.9.0 - 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 -le 506; then - installRemoteModule_version=2.4.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.13 - 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 - 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 - 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 -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 yes - # 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 yes - # 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 yes - # 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 yes - 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 - ;; - 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 - ;; - 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" - checkModuleWorking "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" - enablePhpExtension "$installRemoteModule_module" "$installRemoteModule_ini_basename" "$installRemoteModule_ini_extra" -} - -# 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) - 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 -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 - if test -n "$PACKAGES_VOLATILE"; then - printf '### REMOVING UNNEEDED PACKAGES ###\n' - case "$DISTRO" in - alpine) - apk del --purge $PACKAGES_VOLATILE - ;; - debian) - DEBIAN_FRONTEND=noninteractive apt-get remove --purge -y $PACKAGES_VOLATILE - ;; - esac - fi - if test -n "$PACKAGES_PREVIOUS"; then - case "$DISTRO" in - debian) - printf '### RESTORING PREVIOUSLY INSTALLED PACKAGES ###\n' - DEBIAN_FRONTEND=noninteractive apt-get install -qqy --no-install-recommends --no-upgrade $IPE_APTGET_INSTALLOPTIONS $PACKAGES_PREVIOUS - ;; - esac - fi - 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) ;; - *) - 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/apps/php8/8.2.10/build/php/extensions/install.sh b/apps/php8/8.2.10/build/php/extensions/install.sh deleted file mode 100644 index 7bdd718f..00000000 --- a/apps/php8/8.2.10/build/php/extensions/install.sh +++ /dev/null @@ -1,701 +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 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-5.2.2 -# -# Param 1: Package name with version -# Param 2: enable options -# -installExtensionFromTgz() -{ - tgzName=$1 - para1= - extensionName="${tgzName%%-*}" - if [ $2 ]; then - para1=$2 - fi - mkdir ${extensionName} - tar -xf ${tgzName}.tgz -C ${extensionName} --strip-components=1 - ( cd ${extensionName} && phpize && ./configure ${para1} && 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 ----------" - install-php-extensions sourceguardian -fi - -if [[ -z "${EXTENSIONS##*,memcached,*}" ]]; then - echo "---------- Install memcached ----------" - install-php-extensions memcached -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_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 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##*,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##*,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 8 0 - 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 >= 8.0.0, installed version is ${PHP_VERSION}" - fi -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 ----------" - install-php-extensions pdo_sqlsrv - 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-5.3.7 -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 ----------" - installExtensionFromTgz event-3.0.5 "--ini-name event.ini" -fi - -if [[ -z "${EXTENSIONS##*,mongodb,*}" ]]; then - echo "---------- Install mongodb ----------" - pecl install mongodb - 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 ----------" - isPhpVersionGreaterOrEqual 8 0 - if [[ "$?" = "1" ]]; then - installExtensionFromTgz swoole-5.0.2 --enable-openssl - 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 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 - apk del .build-deps \ - && docker-php-source delete -fi diff --git a/apps/php8/8.2.10/build/php/extensions/redis-5.3.7.tgz b/apps/php8/8.2.10/build/php/extensions/redis-5.3.7.tgz deleted file mode 100644 index db2187b4..00000000 Binary files a/apps/php8/8.2.10/build/php/extensions/redis-5.3.7.tgz and /dev/null differ diff --git a/apps/php8/8.2.10/build/php/extensions/swoole-5.0.2.tgz b/apps/php8/8.2.10/build/php/extensions/swoole-5.0.2.tgz deleted file mode 100644 index 7e42418c..00000000 Binary files a/apps/php8/8.2.10/build/php/extensions/swoole-5.0.2.tgz and /dev/null differ diff --git a/apps/php8/8.2.10/build/php/extensions/xdebug-3.2.0.tgz b/apps/php8/8.2.10/build/php/extensions/xdebug-3.2.0.tgz deleted file mode 100644 index 4023612c..00000000 Binary files a/apps/php8/8.2.10/build/php/extensions/xdebug-3.2.0.tgz and /dev/null differ diff --git a/apps/php8/8.2.10/build/php/php-fpm.conf b/apps/php8/8.2.10/build/php/php-fpm.conf deleted file mode 100644 index 13183589..00000000 --- a/apps/php8/8.2.10/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/apps/php8/8.2.10/build/php/php.ini b/apps/php8/8.2.10/build/php/php.ini deleted file mode 100644 index 82b728e2..00000000 --- a/apps/php8/8.2.10/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/apps/php8/8.2.10/conf/php-fpm.conf b/apps/php8/8.2.10/conf/php-fpm.conf deleted file mode 100644 index 13183589..00000000 --- a/apps/php8/8.2.10/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/apps/php8/8.2.10/conf/php.ini b/apps/php8/8.2.10/conf/php.ini deleted file mode 100644 index b6b0aee6..00000000 --- a/apps/php8/8.2.10/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/apps/php8/8.2.10/data.yml b/apps/php8/8.2.10/data.yml deleted file mode 100755 index 0123da18..00000000 --- a/apps/php8/8.2.10/data.yml +++ /dev/null @@ -1,9 +0,0 @@ -additionalProperties: - formFields: - - default: 9000 - envKey: PANEL_APP_PORT_HTTP - labelEn: PHP-FPM Port - labelZh: PHP-FPM 端口 - required: true - rule: paramPort - type: number diff --git a/apps/php8/8.2.10/docker-compose.yml b/apps/php8/8.2.10/docker-compose.yml deleted file mode 100644 index 9173c14e..00000000 --- a/apps/php8/8.2.10/docker-compose.yml +++ /dev/null @@ -1,22 +0,0 @@ -version: '3' -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/apps/php8/README.md b/apps/php8/README.md deleted file mode 100644 index b7d17a6e..00000000 --- a/apps/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/apps/php8/data.yml b/apps/php8/data.yml deleted file mode 100755 index 6d722cab..00000000 --- a/apps/php8/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: PHP 8 -tags: - - 运行环境 -title: PHP8 运行环境 -type: 运行环境 -description: PHP8 运行环境 -additionalProperties: - key: php8 - name: PHP 8 - tags: - - Runtime - shortDescZh: PHP8 运行环境 - shortDescEn: PHP8 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 diff --git a/apps/php8/logo.png b/apps/php8/logo.png deleted file mode 100644 index cfa7782d..00000000 Binary files a/apps/php8/logo.png and /dev/null differ diff --git a/apps/phpmyadmin/5.2.1/conf.d/uploads.ini b/apps/phpmyadmin/5.2.1/conf.d/uploads.ini deleted file mode 100644 index 5b07c5b9..00000000 --- a/apps/phpmyadmin/5.2.1/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/apps/phpmyadmin/5.2.1/conf.inc/config.user.inc.php b/apps/phpmyadmin/5.2.1/conf.inc/config.user.inc.php deleted file mode 100644 index 132a2b2a..00000000 --- a/apps/phpmyadmin/5.2.1/conf.inc/config.user.inc.php +++ /dev/null @@ -1,5 +0,0 @@ -` to any timeseries scraped from this config. - - job_name: 'prometheus' - static_configs: - - targets: [ 'localhost:9090' ] - diff --git a/apps/prometheus/2.49.1/data.yml b/apps/prometheus/2.49.1/data.yml deleted file mode 100644 index a9d231b4..00000000 --- a/apps/prometheus/2.49.1/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 9090 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: Web 端口 - required: true - rule: paramPort - type: number diff --git a/apps/prometheus/2.49.1/docker-compose.yml b/apps/prometheus/2.49.1/docker-compose.yml deleted file mode 100644 index 7ecf191d..00000000 --- a/apps/prometheus/2.49.1/docker-compose.yml +++ /dev/null @@ -1,24 +0,0 @@ -version: '3' -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:v2.49.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=200h' - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/apps/prometheus/2.49.1/prometheus/.gitkeep b/apps/prometheus/2.49.1/prometheus/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/prometheus/2.49.1/scripts/init.sh b/apps/prometheus/2.49.1/scripts/init.sh deleted file mode 100644 index 93e5dd0c..00000000 --- a/apps/prometheus/2.49.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/apps/prometheus/README.md b/apps/prometheus/README.md deleted file mode 100644 index 30074a0c..00000000 --- a/apps/prometheus/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# Prometheus - -**Prometheus** 一个监控系统和时间序列数据库 - -## 主要功能: - -- 多维数据模型,其中时间序列数据由指标名称和键/值对标识 -- PromQL,一种利用此维度的灵活查询语言 -- 不依赖分布式存储; -- 单个服务器节点是自治的 -- 时间序列收集通过 HTTP 上的拉模型进行 -- 通过中间网关支持推送时间序列 -- 通过服务发现或静态配置发现目标 -- 多种图形和仪表板支持模式 diff --git a/apps/prometheus/data.yml b/apps/prometheus/data.yml deleted file mode 100644 index 106d9f06..00000000 --- a/apps/prometheus/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Prometheus -tags: - - 数据库 -title: Prometheus 一个监控系统和时间序列数据库 -type: 数据库 -description: Prometheus 是一个监控系统和时间序列数据库 -additionalProperties: - key: prometheus - name: Prometheus - tags: - - Database - shortDescZh: Prometheus 一个监控系统和时间序列数据库 - shortDescEn: The Prometheus monitoring system and time series database. - type: runtime - crossVersionUpdate: false - limit: 0 - recommend: 0 - website: https://prometheus.io - github: https://github.com/prometheus/prometheus - document: https://prometheus.io/docs/introduction/overview/ \ No newline at end of file diff --git a/apps/prometheus/logo.png b/apps/prometheus/logo.png deleted file mode 100644 index a3a96013..00000000 Binary files a/apps/prometheus/logo.png and /dev/null differ diff --git a/apps/qiandao/20230821/data.yml b/apps/qiandao/20230821/data.yml deleted file mode 100644 index fa66fbb5..00000000 --- a/apps/qiandao/20230821/data.yml +++ /dev/null @@ -1,28 +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 - - default: http - edit: true diff --git a/apps/qiandao/20230821/docker-compose.yml b/apps/qiandao/20230821/docker-compose.yml deleted file mode 100644 index 969266e1..00000000 --- a/apps/qiandao/20230821/docker-compose.yml +++ /dev/null @@ -1,152 +0,0 @@ -version: '3' -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:20230821 - # image: a76yyyy/qiandao:latest - # image: a76yyyy/qiandao:lite-latest - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/apps/qiandao/README.md b/apps/qiandao/README.md deleted file mode 100644 index ab21f7dc..00000000 --- a/apps/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/apps/qiandao/data.yml b/apps/qiandao/data.yml deleted file mode 100644 index 26b1c73c..00000000 --- a/apps/qiandao/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: QD -tags: - - 实用工具 -title: 一个 HTTP 请求定时任务自动执行框架 -type: 实用工具 -description: 一个 HTTP 请求定时任务自动执行框架 -additionalProperties: - key: qiandao - name: QD - tags: - - Tool - shortDescZh: 一个 HTTP 请求定时任务自动执行框架 - shortDescEn: An HTTP request timed task automation framework - type: tool - 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/ diff --git a/apps/qiandao/logo.png b/apps/qiandao/logo.png deleted file mode 100644 index 67c2a66c..00000000 Binary files a/apps/qiandao/logo.png and /dev/null differ diff --git a/apps/qinglong/2.17.0/data.yml b/apps/qinglong/2.17.0/data.yml deleted file mode 100644 index fd57f6ba..00000000 --- a/apps/qinglong/2.17.0/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/apps/qinglong/2.17.0/docker-compose.yml b/apps/qinglong/2.17.0/docker-compose.yml deleted file mode 100644 index 1c3a1a24..00000000 --- a/apps/qinglong/2.17.0/docker-compose.yml +++ /dev/null @@ -1,17 +0,0 @@ -version: '3' -services: - qinglong: - image: whyour/qinglong:2.17.0 - 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/apps/qinglong/README.md b/apps/qinglong/README.md deleted file mode 100644 index 8c229688..00000000 --- a/apps/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/apps/qinglong/data.yml b/apps/qinglong/data.yml deleted file mode 100644 index 64cd305e..00000000 --- a/apps/qinglong/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: 青龙 -tags: - - 实用工具 -title: 定时任务管理平台 -type: 实用工具 -description: 定时任务管理平台 -additionalProperties: - key: qinglong - name: 青龙 - tags: - - Tool - shortDescZh: 定时任务管理平台 - shortDescEn: A scheduled task management platform - type: tool - crossVersionUpdate: true - limit: 0 - website: https://github.com/whyour/qinglong/tree/master - github: https://github.com/whyour/qinglong/tree/master - document: https://github.com/whyour/qinglong/tree/master diff --git a/apps/qinglong/logo.png b/apps/qinglong/logo.png deleted file mode 100644 index 81308ade..00000000 Binary files a/apps/qinglong/logo.png and /dev/null differ diff --git a/apps/rabbitmq/3.12.12-management-alpine/data.yml b/apps/rabbitmq/3.12.12-management-alpine/data.yml deleted file mode 100755 index fb658951..00000000 --- a/apps/rabbitmq/3.12.12-management-alpine/data.yml +++ /dev/null @@ -1,30 +0,0 @@ -additionalProperties: - formFields: - - default: rabbitmq - envKey: RABBITMQ_DEFAULT_USER - labelEn: RabbitMQ User - labelZh: 管理员 - required: true - type: text - - default: rabbitmq - envKey: RABBITMQ_DEFAULT_PASS - labelEn: RabbitMQ User Password - labelZh: 管理员密码 - required: true - type: text - - default: 15672 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Dashboard Port - labelZh: Dashboard 端口 - required: true - rule: paramPort - type: number - - default: 5672 - edit: true - envKey: PANEL_APP_PORT_SERVICE - labelEn: Service Port - labelZh: 服务端口 - required: true - rule: paramPort - type: number diff --git a/apps/rabbitmq/3.12.12-management-alpine/docker-compose.yml b/apps/rabbitmq/3.12.12-management-alpine/docker-compose.yml deleted file mode 100644 index 75efbec1..00000000 --- a/apps/rabbitmq/3.12.12-management-alpine/docker-compose.yml +++ /dev/null @@ -1,23 +0,0 @@ -version: '3' -services: - rabbitmq: - image: rabbitmq:3.12.12-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/apps/rabbitmq/README.md b/apps/rabbitmq/README.md deleted file mode 100644 index f16b9671..00000000 --- a/apps/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/apps/rabbitmq/data.yml b/apps/rabbitmq/data.yml deleted file mode 100755 index abcaea0d..00000000 --- a/apps/rabbitmq/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: RabbitMQ -tags: - - 中间件 -title: 一个功能丰富的多协议消息传递和流媒体代理 -type: 中间件 -description: 一个功能丰富的多协议消息传递和流媒体代理 -additionalProperties: - key: rabbitmq - name: RabbitMQ - tags: - - Middleware - shortDescZh: 一个功能丰富的多协议消息传递和流媒体代理 - shortDescEn: A feature rich, multi-protocol messaging and streaming broker - type: tool - 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 diff --git a/apps/rabbitmq/logo.png b/apps/rabbitmq/logo.png deleted file mode 100644 index 519b845d..00000000 Binary files a/apps/rabbitmq/logo.png and /dev/null differ diff --git a/apps/redis-commander/README.md b/apps/redis-commander/README.md deleted file mode 100644 index c5d154c3..00000000 --- a/apps/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/apps/redis-commander/data.yml b/apps/redis-commander/data.yml deleted file mode 100755 index f9d31872..00000000 --- a/apps/redis-commander/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Redis-Commander -tags: - - 开发工具 -title: Redis Web 管理工具 -type: 开发工具 -description: Redis Web 管理工具 -additionalProperties: - key: redis-commander - name: Redis-Commander - tags: - - DevTool - shortDescZh: Redis Web 管理工具 - shortDescEn: Redis web management tool - type: tool - 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 diff --git a/apps/redis-commander/latest/data.yml b/apps/redis-commander/latest/data.yml deleted file mode 100755 index 73638ece..00000000 --- a/apps/redis-commander/latest/data.yml +++ /dev/null @@ -1,81 +0,0 @@ -additionalProperties: - formFields: - - default: "" - envKey: PANEL_DB_HOST - key: redis - labelEn: Redis Service - labelZh: Redis 服务 - required: true - type: service - - default: "" - envKey: PANEL_REDIS_ROOT_PASSWORD - labelEn: Redis Password - labelZh: Redis 密码 - required: true - type: password - - default: "0" - edit: true - envKey: REDIS_DB - labelEn: Database - labelZh: 数据库 - 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: 登录用户名 - random: true - required: true - rule: paramCommon - type: text - - default: P@ssword@redis - edit: true - envKey: COMMANDER_PASSWORD - labelEn: Password - labelZh: 登录密码 - random: true - required: true - rule: paramComplexity - type: text - - default: 8089 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/apps/redis-commander/latest/docker-compose.yml b/apps/redis-commander/latest/docker-compose.yml deleted file mode 100644 index ea80d0b3..00000000 --- a/apps/redis-commander/latest/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -version: '3' -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/apps/redis-commander/logo.png b/apps/redis-commander/logo.png deleted file mode 100644 index 2e724d26..00000000 Binary files a/apps/redis-commander/logo.png and /dev/null differ diff --git a/apps/redis/6.2.14/conf/redis.conf b/apps/redis/6.2.14/conf/redis.conf deleted file mode 100644 index d49c89a4..00000000 --- a/apps/redis/6.2.14/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/apps/redis/6.2.14/data.yml b/apps/redis/6.2.14/data.yml deleted file mode 100755 index fccff6aa..00000000 --- a/apps/redis/6.2.14/data.yml +++ /dev/null @@ -1,17 +0,0 @@ -additionalProperties: - formFields: - - default: jhkdjhkjdhsIUTYURT - envKey: PANEL_REDIS_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 diff --git a/apps/redis/6.2.14/docker-compose.yml b/apps/redis/6.2.14/docker-compose.yml deleted file mode 100644 index 35775868..00000000 --- a/apps/redis/6.2.14/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -version: '3' -services: - redis: - image: redis:6.2.14 - restart: always - container_name: ${CONTAINER_NAME} - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:6379 - command: redis-server /etc/redis/redis.conf --loglevel warning --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/apps/redis/7.2.4/conf/redis.conf b/apps/redis/7.2.4/conf/redis.conf deleted file mode 100644 index 51007df1..00000000 --- a/apps/redis/7.2.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/apps/redis/7.2.4/data.yml b/apps/redis/7.2.4/data.yml deleted file mode 100755 index ecf36a9f..00000000 --- a/apps/redis/7.2.4/data.yml +++ /dev/null @@ -1,17 +0,0 @@ -additionalProperties: - formFields: - - default: jhkdjhkjdhsIUTYURTU - envKey: PANEL_REDIS_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 diff --git a/apps/redis/7.2.4/docker-compose.yml b/apps/redis/7.2.4/docker-compose.yml deleted file mode 100644 index 4c7456a1..00000000 --- a/apps/redis/7.2.4/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -version: '3' -services: - redis: - image: redis:7.2.4 - restart: always - container_name: ${CONTAINER_NAME} - networks: - - 1panel-network - ports: - - ${PANEL_APP_PORT_HTTP}:6379 - command: redis-server /etc/redis/redis.conf --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/apps/redis/README.md b/apps/redis/README.md deleted file mode 100644 index 023968e0..00000000 --- a/apps/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/apps/redis/data.yml b/apps/redis/data.yml deleted file mode 100755 index a962c601..00000000 --- a/apps/redis/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Redis -tags: - - 数据库 -title: 高性能的开源键值数据库 -type: 数据库 -description: 高性能的开源键值数据库 -additionalProperties: - key: redis - name: Redis - tags: - - Database - shortDescZh: 高性能的开源键值数据库 - shortDescEn: High-performance key-value database - type: runtime - crossVersionUpdate: true - limit: 1 - recommend: 4 - website: https://redis.io/ - github: https://github.com/redis/redis - document: https://redis.io/docs/ diff --git a/apps/redis/logo.png b/apps/redis/logo.png deleted file mode 100644 index f8b930e9..00000000 Binary files a/apps/redis/logo.png and /dev/null differ diff --git a/apps/redpanda-console/2.4.0/data.yml b/apps/redpanda-console/2.4.0/data.yml deleted file mode 100755 index de22573a..00000000 --- a/apps/redpanda-console/2.4.0/data.yml +++ /dev/null @@ -1,16 +0,0 @@ -additionalProperties: - formFields: - - default: 8080 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - - default: - envKey: KAFKA_BROKERS - labelEn: Kafka Brokers - labelZh: Kafka 地址 - required: true - rule: paramExtUrl - type: text diff --git a/apps/redpanda-console/2.4.0/docker-compose.yml b/apps/redpanda-console/2.4.0/docker-compose.yml deleted file mode 100644 index 843315f9..00000000 --- a/apps/redpanda-console/2.4.0/docker-compose.yml +++ /dev/null @@ -1,17 +0,0 @@ -version: '3' -services: - redpanda-console: - image: redpandadata/console:v2.4.0 - restart: always - container_name: ${CONTAINER_NAME} - networks: - - 1panel-network - environment: - KAFKA_BROKERS: ${KAFKA_BROKERS} - ports: - - ${PANEL_APP_PORT_HTTP}:8080 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true diff --git a/apps/redpanda-console/README.md b/apps/redpanda-console/README.md deleted file mode 100644 index e7aa050d..00000000 --- a/apps/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/apps/redpanda-console/data.yml b/apps/redpanda-console/data.yml deleted file mode 100755 index 39a15811..00000000 --- a/apps/redpanda-console/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Redpanda Console -tags: - - 开发工具 -title: Kafka Web 管理工具 -type: 开发工具 -description: Kafka Web 管理工具 -additionalProperties: - key: redpanda-console - name: Redpanda Console - tags: - - DevTool - shortDescZh: Kafka Web 管理工具 - shortDescEn: Redpanda Console – A UI for Data Streaming - type: tool - 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/ diff --git a/apps/redpanda-console/logo.png b/apps/redpanda-console/logo.png deleted file mode 100644 index 05dc5a8a..00000000 Binary files a/apps/redpanda-console/logo.png and /dev/null differ diff --git a/apps/roundcube/1.6.6-apache/data.yml b/apps/roundcube/1.6.6-apache/data.yml deleted file mode 100644 index ea705687..00000000 --- a/apps/roundcube/1.6.6-apache/data.yml +++ /dev/null @@ -1,71 +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 - rule: paramComplexity - type: password - - default: imap.sina.com - edit: true - envKey: IMAP_SERVER - labelEn: IMAP Server - labelZh: IMAP 服务器 - required: true - type: text - - default: 143 - edit: true - envKey: IMAP_SERVER_PORT - labelEn: IMAP Port - labelZh: IMAP 端口 - required: true - rule: paramPort - type: number - - default: smtp.sina.com - edit: true - envKey: SMTP_SERVER - labelEn: SMTP Server - labelZh: SMTP 服务器 - required: true - type: text - - default: 587 - edit: true - envKey: SMTP_SERVER_PORT - labelEn: SMTP Port - labelZh: SMTP 端口 - required: true - rule: paramPort - type: number - - default: 8080 - envKey: PANEL_APP_PORT_HTTP - edit: true - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/apps/roundcube/1.6.6-apache/docker-compose.yml b/apps/roundcube/1.6.6-apache/docker-compose.yml deleted file mode 100644 index 5fc4d926..00000000 --- a/apps/roundcube/1.6.6-apache/docker-compose.yml +++ /dev/null @@ -1,29 +0,0 @@ -version: '3' -services: - roundcube: - image: roundcube/roundcubemail:1.6.6-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/apps/roundcube/README.md b/apps/roundcube/README.md deleted file mode 100644 index b34ee0e7..00000000 --- a/apps/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/apps/roundcube/data.yml b/apps/roundcube/data.yml deleted file mode 100644 index 7d65bef3..00000000 --- a/apps/roundcube/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Roundcube -tags: - - 邮件服务 -title: 基于 Web 的多语言 IMAP 邮件客户端 -type: 邮件服务 -description: 基于 Web 的多语言 IMAP 邮件客户端 -additionalProperties: - key: roundcube - name: Roundcube - tags: - - Email - shortDescZh: 基于 Web 的多语言 IMAP 邮件客户端 - shortDescEn: Web-based multilingual IMAP mail client - type: tool - crossVersionUpdate: false - limit: 0 - recommend: 0 - website: https://roundcube.net/ - github: https://github.com/roundcube/roundcubemail - document: https://github.com/roundcube/roundcubemail/wiki diff --git a/apps/roundcube/logo.png b/apps/roundcube/logo.png deleted file mode 100644 index c387acf5..00000000 Binary files a/apps/roundcube/logo.png and /dev/null differ diff --git a/apps/rustdesk/README.md b/apps/rustdesk/README.md deleted file mode 100644 index 963a35ad..00000000 --- a/apps/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/apps/rustdesk/data.yml b/apps/rustdesk/data.yml deleted file mode 100644 index 34d0744d..00000000 --- a/apps/rustdesk/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: RustDesk -tags: - - 实用工具 -title: 开源的远程桌面软件 -type: 实用工具 -description: 开源的远程桌面软件 -additionalProperties: - key: rustdesk - name: RustDesk - tags: - - Tool - shortDescZh: 开源的远程桌面软件 - shortDescEn: Open source remote desktop software - 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/ diff --git a/apps/rustdesk/logo.png b/apps/rustdesk/logo.png deleted file mode 100644 index a2210b49..00000000 Binary files a/apps/rustdesk/logo.png and /dev/null differ diff --git a/apps/rustdesk/s6-latest/data.yml b/apps/rustdesk/s6-latest/data.yml deleted file mode 100644 index 4cda18fb..00000000 --- a/apps/rustdesk/s6-latest/data.yml +++ /dev/null @@ -1,50 +0,0 @@ -additionalProperties: - formFields: - - default: 21115 - edit: true - envKey: PANEL_APP_PORT_NAT - labelEn: NAT type test port - labelZh: 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/域名使用) - required: true - rule: paramPort - type: number - - default: 21117 - edit: true - envKey: PANEL_APP_PORT_HBBR - labelEn: hbbr port (client relay server port) - labelZh: 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 - 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 - 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地址或域名(必改项) - required: true - rule: paramCommon - type: text diff --git a/apps/rustdesk/s6-latest/docker-compose.yml b/apps/rustdesk/s6-latest/docker-compose.yml deleted file mode 100644 index 7364da6d..00000000 --- a/apps/rustdesk/s6-latest/docker-compose.yml +++ /dev/null @@ -1,26 +0,0 @@ -version: '3' -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/apps/sentinel-dashboard/1.8.6/data.yml b/apps/sentinel-dashboard/1.8.6/data.yml deleted file mode 100644 index ca5f82f1..00000000 --- a/apps/sentinel-dashboard/1.8.6/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: COMMUNICATION_PORT - labelEn: Communication port - labelZh: 通讯端口 - required: true - rule: paramPort - type: number diff --git a/apps/sentinel-dashboard/1.8.6/docker-compose.yml b/apps/sentinel-dashboard/1.8.6/docker-compose.yml deleted file mode 100644 index f6fa9204..00000000 --- a/apps/sentinel-dashboard/1.8.6/docker-compose.yml +++ /dev/null @@ -1,12 +0,0 @@ -version: "3" -services: - "sentinel-dashboard": - image: bladex/sentinel-dashboard:1.8.6 - container_name: ${CONTAINER_NAME} - restart: always - ports: - - "${PANEL_APP_PORT_HTTP}:8858" - - "${COMMUNICATION_PORT}:8719" -networks: - 1panel-network: - external: true diff --git a/apps/sentinel-dashboard/README.md b/apps/sentinel-dashboard/README.md deleted file mode 100644 index c59ae8bd..00000000 --- a/apps/sentinel-dashboard/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# Sentinel-Dashboard - -随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。 - -## 快速启动 - -访问地址 -`http://IP:8858/sentinel` - -> 用户名 -> sentinel -> -> 密码 -> sentinel - -## Sentinel 的历史 - -+ 2012 年,Sentinel 诞生,主要功能为入口流量控制。 -+ 2013-2017 年,Sentinel 在阿里巴巴集团内部迅速发展,成为基础技术模块,覆盖了所有的核心场景。Sentinel 也因此积累了大量的流量归整场景以及生产实践。 -+ 2018 年,Sentinel 开源,并持续演进。 -+ 2019 年,Sentinel 朝着多语言扩展的方向不断探索,推出 C++ 原生版本,同时针对 Service Mesh 场景也推出了 Envoy 集群流量控制支持,以解决 - Service Mesh 架构下多语言限流的问题。 -+ 2020 年,推出 Sentinel Go 版本,继续朝着云原生方向演进。 -+ 2021 年,Sentinel 正在朝着 2.0 云原生高可用决策中心组件进行演进;同时推出了 Sentinel Rust 原生版本。同时我们也在 Rust - 社区进行了 Envoy WASM extension 及 eBPF extension 等场景探索。 -+ 2022 年,Sentinel 品牌升级为流量治理,领域涵盖流量路由/调度、流量染色、流控降级、过载保护/实例摘除等;同时社区将流量治理相关标准抽出到 - OpenSergo 标准中,Sentinel 作为流量治理标准实现。 - -## Sentinel 基本概念 - -### 资源 - -资源是 Sentinel 的关键概念。它可以是 Java 应用程序中的任何内容,例如,由应用程序提供的服务,或由应用程序调用的其它应用提供的服务,甚至可以是一段代码。在接下来的文档中,我们都会用资源来描述代码块。 - -只要通过 Sentinel API 定义的代码,就是资源,能够被 Sentinel 保护起来。大部分情况下,可以使用方法签名,URL,甚至服务名称作为资源名来标示资源。 - -### 规则 - -围绕资源的实时状态设定的规则,可以包括流量控制规则、熔断降级规则以及系统保护规则。所有规则可以动态实时调整。 - -## Sentinel 是如何工作的 - -Sentinel 的主要工作机制如下: - -+ 对主流框架提供适配或者显示的 API,来定义需要保护的资源,并提供设施对资源进行实时统计和调用链路分析。 -+ 根据预设的规则,结合对资源的实时统计信息,对流量进行控制。同时,Sentinel 提供开放的接口,方便您定义及改变规则。 -+ Sentinel 提供实时的监控系统,方便您快速了解目前系统的状态。 diff --git a/apps/sentinel-dashboard/data.yml b/apps/sentinel-dashboard/data.yml deleted file mode 100644 index e222608e..00000000 --- a/apps/sentinel-dashboard/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: sentinel-dashboard -tags: - - 中间件 -title: Sentinel-Dashboard -type: 中间件 -description: 阿里巴巴流量卫兵 -additionalProperties: - key: sentinel-dashboard - name: Sentinel-Dashboard - tags: - - Middleware - shortDescZh: 阿里巴巴流量卫兵 - shortDescEn: Alibaba Traffic Guard - type: runtime - crossVersionUpdate: false - limit: 0 - website: https://sentinelguard.io/ - github: https://github.com/alibaba/Sentinel - document: https://sentinelguard.io/zh-cn/docs/introduction.html diff --git a/apps/sentinel-dashboard/latest/data.yml b/apps/sentinel-dashboard/latest/data.yml deleted file mode 100644 index ca5f82f1..00000000 --- a/apps/sentinel-dashboard/latest/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: COMMUNICATION_PORT - labelEn: Communication port - labelZh: 通讯端口 - required: true - rule: paramPort - type: number diff --git a/apps/sentinel-dashboard/latest/docker-compose.yml b/apps/sentinel-dashboard/latest/docker-compose.yml deleted file mode 100644 index bff233bc..00000000 --- a/apps/sentinel-dashboard/latest/docker-compose.yml +++ /dev/null @@ -1,12 +0,0 @@ -version: "3" -services: - "sentinel-dashboard": - image: bladex/sentinel-dashboard:latest - container_name: ${CONTAINER_NAME} - restart: always - ports: - - "${PANEL_APP_PORT_HTTP}:8858" - - "${COMMUNICATION_PORT}:8719" -networks: - 1panel-network: - external: true diff --git a/apps/sentinel-dashboard/logo.png b/apps/sentinel-dashboard/logo.png deleted file mode 100644 index 3f493afc..00000000 Binary files a/apps/sentinel-dashboard/logo.png and /dev/null differ diff --git a/apps/sftpgo/2.5.6-alpine/data.yml b/apps/sftpgo/2.5.6-alpine/data.yml deleted file mode 100755 index 66f2be6e..00000000 --- a/apps/sftpgo/2.5.6-alpine/data.yml +++ /dev/null @@ -1,58 +0,0 @@ -additionalProperties: - formFields: - - default: 8080 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Web Port - labelZh: Web 端口 - required: true - rule: paramPort - type: number - - default: 2022 - edit: true - envKey: PANEL_APP_PORT_SFTP - labelEn: SFTP Port - labelZh: SFTP 端口 - required: true - rule: paramPort - type: number - - default: 2121 - edit: true - envKey: PANEL_APP_PORT_FTP - labelEn: FTP Port - labelZh: FTP 端口 - required: true - rule: paramPort - type: number - - default: 50000 - edit: true - envKey: PASSIVE_PORT_RANGE_START - labelEn: FTP Passive Mod Start Port - labelZh: FTP 被动模式起始端口 - required: true - rule: paramCommon - type: text - - default: 50100 - edit: true - envKey: PASSIVE_PORT_RANGE_END - labelEn: FTP Passive Mod End Port - labelZh: FTP 被动模式结束端口 (大于起始端口) - required: true - rule: paramCommon - type: text - - default: - edit: true - envKey: FTP_EXTERNAL_IP - labelEn: FTP External Ip (must change item) - labelZh: FTP 外部地址 (必改项) - required: true - rule: paramCommon - type: text - - default: 10080 - edit: true - envKey: PANEL_APP_PORT_WEBDAV - labelEn: WebDAV Port - labelZh: WebDAV 端口 - required: true - rule: paramPort - type: number diff --git a/apps/sftpgo/2.5.6-alpine/data/config/.gitkeep b/apps/sftpgo/2.5.6-alpine/data/config/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/sftpgo/2.5.6-alpine/data/data/.gitkeep b/apps/sftpgo/2.5.6-alpine/data/data/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/sftpgo/2.5.6-alpine/docker-compose.yml b/apps/sftpgo/2.5.6-alpine/docker-compose.yml deleted file mode 100644 index c846e68b..00000000 --- a/apps/sftpgo/2.5.6-alpine/docker-compose.yml +++ /dev/null @@ -1,28 +0,0 @@ -version: '3' -services: - sftpgo: - image: drakkan/sftpgo:v2.5.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/apps/sftpgo/2.5.6-alpine/scripts/init.sh b/apps/sftpgo/2.5.6-alpine/scripts/init.sh deleted file mode 100644 index 4e811c86..00000000 --- a/apps/sftpgo/2.5.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/apps/sftpgo/README.md b/apps/sftpgo/README.md deleted file mode 100644 index aa6bcd5e..00000000 --- a/apps/sftpgo/README.md +++ /dev/null @@ -1,39 +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/apps/sftpgo/data.yml b/apps/sftpgo/data.yml deleted file mode 100755 index 3ca389f3..00000000 --- a/apps/sftpgo/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: SFTPGo -tags: - - 实用工具 -title: 功能齐全且高度可配置的 SFTP 服务器 -type: 实用工具 -description: 功能齐全且高度可配置的 SFTP 服务器 -additionalProperties: - key: sftpgo - name: SFTPGo - tags: - - Tool - shortDescZh: 功能齐全且高度可配置的 SFTP 服务器 - shortDescEn: Fully featured and highly configurable SFTP server - type: tool - crossVersionUpdate: false - limit: 1 - recommend: 13 - website: https://sftpgo.com/ - github: https://github.com/drakkan/sftpgo/ - document: https://github.com/drakkan/sftpgo/blob/main/docs/howto/getting-started.md diff --git a/apps/sftpgo/logo.png b/apps/sftpgo/logo.png deleted file mode 100644 index 0a3ac9d2..00000000 Binary files a/apps/sftpgo/logo.png and /dev/null differ diff --git a/apps/showdoc/3.2.4/data.yml b/apps/showdoc/3.2.4/data.yml deleted file mode 100755 index 1e1ccc91..00000000 --- a/apps/showdoc/3.2.4/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/apps/showdoc/3.2.4/docker-compose.yml b/apps/showdoc/3.2.4/docker-compose.yml deleted file mode 100644 index dd169596..00000000 --- a/apps/showdoc/3.2.4/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -version: '3' -services: - showdoc: - image: star7th/showdoc:v3.2.4 - 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/apps/showdoc/README.md b/apps/showdoc/README.md deleted file mode 100644 index 34d7f435..00000000 --- a/apps/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/apps/showdoc/arm-latest/data.yml b/apps/showdoc/arm-latest/data.yml deleted file mode 100755 index 1e1ccc91..00000000 --- a/apps/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/apps/showdoc/arm-latest/docker-compose.yml b/apps/showdoc/arm-latest/docker-compose.yml deleted file mode 100644 index b997ae63..00000000 --- a/apps/showdoc/arm-latest/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -version: '3' -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/apps/showdoc/data.yml b/apps/showdoc/data.yml deleted file mode 100755 index f0cc32f6..00000000 --- a/apps/showdoc/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: ShowDoc -tags: - - DevOps -title: 一个非常适合IT团队的在线API文档、技术文档工具 -type: DevOps -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: tool - 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 diff --git a/apps/showdoc/logo.png b/apps/showdoc/logo.png deleted file mode 100644 index 31024f07..00000000 Binary files a/apps/showdoc/logo.png and /dev/null differ diff --git a/apps/synapse/1.99.0/data.yml b/apps/synapse/1.99.0/data.yml deleted file mode 100644 index 70a3eec1..00000000 --- a/apps/synapse/1.99.0/data.yml +++ /dev/null @@ -1,11 +0,0 @@ -additionalProperties: - formFields: - - default: 40026 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - diff --git a/apps/synapse/1.99.0/docker-compose.yml b/apps/synapse/1.99.0/docker-compose.yml deleted file mode 100644 index 501f6b41..00000000 --- a/apps/synapse/1.99.0/docker-compose.yml +++ /dev/null @@ -1,30 +0,0 @@ -version: '3' -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.99.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/apps/synapse/README.md b/apps/synapse/README.md deleted file mode 100644 index d642d55a..00000000 --- a/apps/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/apps/synapse/data.yml b/apps/synapse/data.yml deleted file mode 100644 index 004e9c30..00000000 --- a/apps/synapse/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Synapse -tags: - - 实用工具 -title: 开源的 Matrix 家庭服务器,自建聊天服务端 -type: 实用工具 -description: 开源的 Matrix 家庭服务器,自建聊天服务端 -additionalProperties: - key: synapse - name: Synapse - tags: - - Tool - shortDescZh: 开源的 Matrix 家庭服务器,自建聊天服务端 - shortDescEn: Open-source Matrix homeserver,build your own chat server - type: tool - 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 diff --git a/apps/synapse/logo.png b/apps/synapse/logo.png deleted file mode 100644 index b4b6d4fc..00000000 Binary files a/apps/synapse/logo.png and /dev/null differ diff --git a/apps/tailchat/1.10.0/data.yml b/apps/tailchat/1.10.0/data.yml deleted file mode 100755 index 1d4fe044..00000000 --- a/apps/tailchat/1.10.0/data.yml +++ /dev/null @@ -1,138 +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 - rule: paramCommon - 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/apps/tailchat/1.10.0/docker-compose.yml b/apps/tailchat/1.10.0/docker-compose.yml deleted file mode 100644 index fb6bdeb0..00000000 --- a/apps/tailchat/1.10.0/docker-compose.yml +++ /dev/null @@ -1,57 +0,0 @@ -version: '3' -services: - tailchat: - container_name: ${CONTAINER_NAME} - restart: unless-stopped - image: moonrailgun/tailchat:1.10.0 - 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}: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_HTTP}:11000 - labels: - createdBy: "Apps" - tailchat-admin: - container_name: ${CONTAINER_NAME}-admin - restart: unless-stopped - image: moonrailgun/tailchat:1.10.0 - 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/apps/tailchat/README.md b/apps/tailchat/README.md deleted file mode 100644 index 02796a32..00000000 --- a/apps/tailchat/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# 关于后台 - -访问 `http://:11002/admin/` 进入后台服务 - -> 11002是后台默认端口,你可以在安装时修改成自己想要的端口。 - -# Tailchat - -**Tailchat** 是一款功能强大的聊天工具,旨在提供出色的沟通和协作体验。 - -## 主要功能: - -- **实时聊天**:Tailchat 提供实时聊天功能,允许用户与他人进行即时沟通。无论是一对一聊天还是群组聊天,您都可以轻松地与同事、朋友和家人保持联系。 -- **多平台支持**:Tailchat 可以在多个平台上使用,包括桌面、移动设备和Web浏览器。这意味着您可以随时随地访问您的聊天会话,无需担心设备兼容性问题。 -- **文件共享**:用户可以在聊天中轻松共享文件,包括图片、文档和音频文件。这样,您可以与团队成员共享重要文档或娱乐内容,提高工作效率和娱乐乐趣。 -- **消息历史记录**:Tailchat 会自动保存聊天消息的历史记录,因此您可以随时查看之前的对话。这对于追踪项目进展、查找之前的信息或进行审计非常有用。 -- **自定义表情和贴纸**:为了增加聊天的趣味性,Tailchat 支持自定义表情和贴纸。用户可以发送各种表情符号和有趣的贴纸来表达自己的情感和想法。 -- **安全和隐私**:Tailchat 提供了强大的安全性和隐私保护功能,包括端到端加密,以确保您的聊天内容不会被未经授权的访问。 diff --git a/apps/tailchat/data.yml b/apps/tailchat/data.yml deleted file mode 100755 index 31593592..00000000 --- a/apps/tailchat/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Tailchat -tags: - - 实用工具 -title: 在你自己工作区的下一代 noIM 应用 -type: 实用工具 -description: 在你自己工作区的下一代 noIM 应用 -additionalProperties: - key: tailchat - name: Tailchat - tags: - - Tool - shortDescZh: 在你自己工作区的下一代 noIM 应用 - shortDescEn: The next-generation noIM Application in your own workspace - type: tool - crossVersionUpdate: true - limit: 1 - recommend: 0 - website: https://tailchat.msgbyte.com/ - github: https://github.com/msgbyte/tailchat - document: https://tailchat.msgbyte.com/docs/intro diff --git a/apps/tailchat/logo.png b/apps/tailchat/logo.png deleted file mode 100644 index 68affaa9..00000000 Binary files a/apps/tailchat/logo.png and /dev/null differ diff --git a/apps/twikoo/1.6.31/data.yml b/apps/twikoo/1.6.31/data.yml deleted file mode 100644 index 842c9aac..00000000 --- a/apps/twikoo/1.6.31/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/apps/twikoo/1.6.31/docker-compose.yml b/apps/twikoo/1.6.31/docker-compose.yml deleted file mode 100644 index a1f17cb3..00000000 --- a/apps/twikoo/1.6.31/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -version: '3' -services: - twikoo: - container_name: ${CONTAINER_NAME} - image: imaegoo/twikoo:1.6.31 - 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/apps/twikoo/README.md b/apps/twikoo/README.md deleted file mode 100644 index 6bfcf49c..00000000 --- a/apps/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/apps/twikoo/arm32v7/data.yml b/apps/twikoo/arm32v7/data.yml deleted file mode 100644 index 842c9aac..00000000 --- a/apps/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/apps/twikoo/arm32v7/docker-compose.yml b/apps/twikoo/arm32v7/docker-compose.yml deleted file mode 100644 index 53b4a07f..00000000 --- a/apps/twikoo/arm32v7/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -version: '3' -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/apps/twikoo/data.yml b/apps/twikoo/data.yml deleted file mode 100644 index d03d73c0..00000000 --- a/apps/twikoo/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Twikoo -tags: - - 实用工具 -title: 一个简洁、安全、免费的静态网站评论系统 -type: 实用工具 -description: 一个简洁、安全、免费的静态网站评论系统 -additionalProperties: - key: twikoo - name: Twikoo - tags: - - Tool - shortDescZh: 一个简洁、安全、免费的静态网站评论系统 - shortDescEn: A simple, safe, free comment system - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://twikoo.js.org - github: https://github.com/imaegoo/twikoo - document: https://twikoo.js.org diff --git a/apps/twikoo/logo.png b/apps/twikoo/logo.png deleted file mode 100644 index 66bb1184..00000000 Binary files a/apps/twikoo/logo.png and /dev/null differ diff --git a/apps/typecho/README.md b/apps/typecho/README.md deleted file mode 100644 index 9571dfae..00000000 --- a/apps/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/apps/typecho/data.yml b/apps/typecho/data.yml deleted file mode 100755 index fd0b238f..00000000 --- a/apps/typecho/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: Typecho -tags: - - 建站 -title: 一款基于 PHP 的博客软件 -type: 建站 -description: 一款基于 PHP 的博客软件 -additionalProperties: - key: typecho - name: Typecho - tags: - - WebSite - shortDescZh: 一款基于 PHP 的博客软件 - shortDescEn: A PHP-based blog software - type: website - crossVersionUpdate: true - limit: 0 - website: https://typecho.org/ - github: https://github.com/typecho/typecho - document: https://docs.typecho.org/doku.php diff --git a/apps/typecho/logo.png b/apps/typecho/logo.png deleted file mode 100644 index e6345c85..00000000 Binary files a/apps/typecho/logo.png and /dev/null differ diff --git a/apps/typecho/nightly-php7.4-apache/data.yml b/apps/typecho/nightly-php7.4-apache/data.yml deleted file mode 100755 index a6ab4cfa..00000000 --- a/apps/typecho/nightly-php7.4-apache/data.yml +++ /dev/null @@ -1,79 +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 - rule: paramComplexity - 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/apps/typecho/nightly-php7.4-apache/docker-compose.yml b/apps/typecho/nightly-php7.4-apache/docker-compose.yml deleted file mode 100644 index 9cf2aee0..00000000 --- a/apps/typecho/nightly-php7.4-apache/docker-compose.yml +++ /dev/null @@ -1,29 +0,0 @@ -version: '3' -services: - typecho: - image: joyqi/typecho:nightly-php7.4-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/apps/typecho/nightly-php7.4-apache/scripts/init.sh b/apps/typecho/nightly-php7.4-apache/scripts/init.sh deleted file mode 100644 index 6d4327c0..00000000 --- a/apps/typecho/nightly-php7.4-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/apps/umami/2.9.0/data.yml b/apps/umami/2.9.0/data.yml deleted file mode 100644 index 6dcac541..00000000 --- a/apps/umami/2.9.0/data.yml +++ /dev/null @@ -1,56 +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: PostgreSQL - value: postgresql - - default: umami - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库名 - random: true - required: true - rule: paramCommon - type: text - - default: umami - envKey: PANEL_DB_USER - labelEn: User - labelZh: 数据库用户 - random: true - required: true - rule: paramCommon - type: text - - default: umami - envKey: PANEL_DB_USER_PASSWORD - labelEn: Password - labelZh: 数据库用户密码 - random: true - required: true - rule: paramComplexity - type: password - - default: 3000 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: HTTP 端口 - required: true - rule: paramPort - type: number - - default: umami - envKey: HASH_SALT - labelEn: Hash Salt - labelZh: 哈希盐 (随机字符串) - random: true - required: true - type: text diff --git a/apps/umami/2.9.0/docker-compose.yml b/apps/umami/2.9.0/docker-compose.yml deleted file mode 100644 index 33b44803..00000000 --- a/apps/umami/2.9.0/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -version: '3' -services: - umami: - image: ghcr.io/umami-software/umami:${PANEL_DB_TYPE}-v2.9.0 - container_name: ${CONTAINER_NAME} - restart: always - labels: - createdBy: "Apps" - ports: - - ${PANEL_APP_PORT_HTTP}:3000 - environment: - DATABASE_TYPE: ${PANEL_DB_TYPE} - DATABASE_URL: ${PANEL_DB_TYPE}://${PANEL_DB_USER}:${PANEL_DB_USER_PASSWORD}@${PANEL_DB_HOST}:${PANEL_DB_PORT}/${PANEL_DB_NAME} - HASH_SALT: ${HASH_SALT} - networks: - - 1panel-network -networks: - 1panel-network: - external: true \ No newline at end of file diff --git a/apps/umami/2.9.0/scripts/upgrade.sh b/apps/umami/2.9.0/scripts/upgrade.sh deleted file mode 100644 index 2cf758d2..00000000 --- a/apps/umami/2.9.0/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/apps/umami/README.md b/apps/umami/README.md deleted file mode 100644 index 742f6ec1..00000000 --- a/apps/umami/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# 使用说明 - -- 只支持 **MySQL 8.0 以上版本** 数据库。 -- 首次登录默认用户名为:admin,密码为:umami。 - -# Umami - -*Umami* 是 Google Analytics 的简单、快速、注重隐私的替代方案。 - -## 主要功能: - -- **实时数据监控**:提供实时网站访问数据,包括访客数量、页面浏览量等。 -- **流量来源追踪**:分析和显示网站访问流量的来源,包括搜索引擎、推荐网站等。 -- **地理位置分析**:展示访客的地理位置分布情况,帮助了解用户所在地区分布。 -- **关键指标跟踪**:提供关键指标如会话时长、页面停留时间等,帮助优化用户体验和网站内容。 - -## 优势: - -- **开源免费**:Umami 是开源项目,用户可以免费使用和定制。 -- **用户友好**:简洁直观的界面,易于使用和导航。 -- **隐私保护**:强调用户数据隐私保护,在合规性方面有所考虑。 diff --git a/apps/umami/data.yml b/apps/umami/data.yml deleted file mode 100644 index 488841e3..00000000 --- a/apps/umami/data.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: Umami -tags: - - 实用工具 -title: Umami 是 Google Analytics 的简单、快速、注重隐私的替代方案 -type: 实用工具 -description: Umami 是 Google Analytics 的简单、快速、注重隐私的替代方案 -additionalProperties: - key: umami - name: Umami - tags: - - Tool - shortDescZh: Umami 是 Google Analytics 的简单、快速、注重隐私的替代方案 - shortDescEn: Umami is a simple, fast, privacy-focused alternative to Google Analytics - type: tool - crossVersionUpdate: true - limit: 0 - website: https://umami.is/ - github: https://github.com/umami-software/umami - document: https://umami.is/docs \ No newline at end of file diff --git a/apps/umami/logo.png b/apps/umami/logo.png deleted file mode 100644 index abc842c3..00000000 Binary files a/apps/umami/logo.png and /dev/null differ diff --git a/apps/uptime-kuma/1.23.11/data.yml b/apps/uptime-kuma/1.23.11/data.yml deleted file mode 100755 index 3fc4c819..00000000 --- a/apps/uptime-kuma/1.23.11/data.yml +++ /dev/null @@ -1,10 +0,0 @@ -additionalProperties: - formFields: - - default: 3001 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/apps/uptime-kuma/1.23.11/docker-compose.yml b/apps/uptime-kuma/1.23.11/docker-compose.yml deleted file mode 100644 index 330717c3..00000000 --- a/apps/uptime-kuma/1.23.11/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -# from https://github.com/louislam/uptime-kuma/blob/master/docker/docker-compose.yml -version: '3' -services: - uptime-kuma: - image: louislam/uptime-kuma:1.23.11 - 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/apps/uptime-kuma/README.md b/apps/uptime-kuma/README.md deleted file mode 100644 index ecf31b8b..00000000 --- a/apps/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/apps/uptime-kuma/data.yml b/apps/uptime-kuma/data.yml deleted file mode 100755 index 015d4a9b..00000000 --- a/apps/uptime-kuma/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Uptime Kuma -tags: - - 实用工具 -title: 自托管的监控工具 -type: 实用工具 -description: 自托管的监控工具 -additionalProperties: - key: uptime-kuma - name: Uptime Kuma - tags: - - Tool - shortDescZh: 自托管的监控工具 - shortDescEn: A fancy self-hosted monitoring tool - type: tool - 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 diff --git a/apps/uptime-kuma/logo.png b/apps/uptime-kuma/logo.png deleted file mode 100644 index 54309bce..00000000 Binary files a/apps/uptime-kuma/logo.png and /dev/null differ diff --git a/apps/uuwaf/3.0.1/data.yml b/apps/uuwaf/3.0.1/data.yml deleted file mode 100644 index b23b2e21..00000000 --- a/apps/uuwaf/3.0.1/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/apps/uuwaf/3.0.1/docker-compose.yml b/apps/uuwaf/3.0.1/docker-compose.yml deleted file mode 100644 index 44cf3ad9..00000000 --- a/apps/uuwaf/3.0.1/docker-compose.yml +++ /dev/null @@ -1,45 +0,0 @@ -networks: - 1panel-network: - external: true - -services: - uuwaf: - image: uusec/nanqiang:v3.0.1 - 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 - 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: diff --git a/apps/uuwaf/3.0.1/scripts/uninstall.sh b/apps/uuwaf/3.0.1/scripts/uninstall.sh deleted file mode 100644 index 1a62d5e5..00000000 --- a/apps/uuwaf/3.0.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/apps/uuwaf/README.md b/apps/uuwaf/README.md deleted file mode 100644 index 9c3e7164..00000000 --- a/apps/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,密码wafadmin -2. 添加站点,进入站点管理菜单,点击添加站点按钮,按提示添加站点域名与网站服务器ip -3. 添加证书,进入证书管理菜单,点击添加证书按钮,上传第二步中域名的https证书和私钥文件 -4. 将域名DNS的ip指向改为南墙服务器ip地址 -5. 访问站点域名查看网站是否能够访问 \ No newline at end of file diff --git a/apps/uuwaf/data.yml b/apps/uuwaf/data.yml deleted file mode 100644 index 63653231..00000000 --- a/apps/uuwaf/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: uuWAF -tags: - - 安全 -title: 南墙应用防火墙 -type: 安全 -description: 南墙应用防火墙 -additionalProperties: - key: uuwaf - name: uuWAF - tags: - - Security - shortDescZh: 南墙应用防火墙 - shortDescEn: NanQiang WebApplication Firewall - type: tool - crossVersionUpdate: false - limit: 1 - recommend: 7 - website: https://waf.uusec.com/#/ - github: https://github.com/Safe3/uuWAF - document: https://waf.uusec.com/#/?id=main diff --git a/apps/uuwaf/logo.png b/apps/uuwaf/logo.png deleted file mode 100644 index f82ea82f..00000000 Binary files a/apps/uuwaf/logo.png and /dev/null differ diff --git a/apps/watchtower/1.5.3/data.yml b/apps/watchtower/1.5.3/data.yml deleted file mode 100755 index d3592865..00000000 --- a/apps/watchtower/1.5.3/data.yml +++ /dev/null @@ -1,16 +0,0 @@ -additionalProperties: - formFields: - - default: WATCHTOWER_NO_STARTUP_MESSAGE - edit: true - envKey: ENV1 - labelEn: Environmental parameters (split by ;) - labelZh: 环境参数(以;分割) - required: true - type: text - - default: --interval 3600 --cleanup - edit: true - envKey: COMMAND1 - labelEn: Command parameters (separated by spaces) - labelZh: 命令参数(以空格分割) - required: true - type: text diff --git a/apps/watchtower/1.5.3/docker-compose.yml b/apps/watchtower/1.5.3/docker-compose.yml deleted file mode 100644 index 5f032deb..00000000 --- a/apps/watchtower/1.5.3/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -version: '3' -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/apps/watchtower/README.md b/apps/watchtower/README.md deleted file mode 100644 index 0821ffdc..00000000 --- a/apps/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/apps/watchtower/data.yml b/apps/watchtower/data.yml deleted file mode 100755 index deb069e3..00000000 --- a/apps/watchtower/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: watchtower -tags: - - 实用工具 -title: 自动更新 Docker 容器基础镜像的工具 -type: 实用工具 -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/ diff --git a/apps/watchtower/logo.png b/apps/watchtower/logo.png deleted file mode 100644 index cd5ef527..00000000 Binary files a/apps/watchtower/logo.png and /dev/null differ diff --git a/apps/wikijs/2.5.300/data.yml b/apps/wikijs/2.5.300/data.yml deleted file mode 100755 index da601ab4..00000000 --- a/apps/wikijs/2.5.300/data.yml +++ /dev/null @@ -1,52 +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: MariaDB - value: mariadb - - label: PostgreSQL - value: postgres - - default: wiki - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库名 - random: true - required: true - rule: paramCommon - type: text - - default: wikijs - envKey: PANEL_DB_USER - labelEn: User - labelZh: 数据库用户 - random: true - required: true - rule: paramCommon - type: text - - default: wikijsrocks - envKey: PANEL_DB_USER_PASSWORD - labelEn: Password - labelZh: 数据库用户密码 - random: true - required: true - rule: paramComplexity - type: password - - default: 3000 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number diff --git a/apps/wikijs/2.5.300/docker-compose.yml b/apps/wikijs/2.5.300/docker-compose.yml deleted file mode 100644 index b91a9e0c..00000000 --- a/apps/wikijs/2.5.300/docker-compose.yml +++ /dev/null @@ -1,22 +0,0 @@ -version: '3' -services: - wiki: - image: requarks/wiki:2.5.300 - 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/apps/wikijs/README.md b/apps/wikijs/README.md deleted file mode 100644 index ed8c2ad1..00000000 --- a/apps/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/apps/wikijs/data.yml b/apps/wikijs/data.yml deleted file mode 100755 index 599e687b..00000000 --- a/apps/wikijs/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Wiki.js -tags: - - 建站 -title: 基于 Node.js 构建的现代而强大的 Wiki 应用程序。 -type: 建站 -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/ diff --git a/apps/wikijs/logo.png b/apps/wikijs/logo.png deleted file mode 100644 index 93392639..00000000 Binary files a/apps/wikijs/logo.png and /dev/null differ diff --git a/apps/wordpress/6.4.2/conf/uploads.ini b/apps/wordpress/6.4.2/conf/uploads.ini deleted file mode 100644 index f7da4e71..00000000 --- a/apps/wordpress/6.4.2/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/apps/wordpress/6.4.2/data.yml b/apps/wordpress/6.4.2/data.yml deleted file mode 100755 index fcaeaa83..00000000 --- a/apps/wordpress/6.4.2/data.yml +++ /dev/null @@ -1,49 +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: word - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库名 - random: true - required: true - rule: paramCommon - type: text - - default: word - envKey: PANEL_DB_USER - labelEn: User - labelZh: 数据库用户 - random: true - required: true - rule: paramCommon - type: text - - default: word - envKey: PANEL_DB_USER_PASSWORD - labelEn: Password - labelZh: 数据库用户密码 - random: true - required: true - rule: paramComplexity - type: password - - default: 8080 - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 应用端口 - required: true - rule: paramPort - type: number diff --git a/apps/wordpress/6.4.2/docker-compose.yml b/apps/wordpress/6.4.2/docker-compose.yml deleted file mode 100644 index af18a176..00000000 --- a/apps/wordpress/6.4.2/docker-compose.yml +++ /dev/null @@ -1,24 +0,0 @@ -version: '3' -services: - wordpress: - image: wordpress:6.4.2 - 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/apps/wordpress/README.md b/apps/wordpress/README.md deleted file mode 100644 index 4c64fd7f..00000000 --- a/apps/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/apps/wordpress/data.yml b/apps/wordpress/data.yml deleted file mode 100755 index feed1f2d..00000000 --- a/apps/wordpress/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: WordPress -tags: - - 建站 -title: 著名的开源博客软件和 CMS 系统 -type: 建站 -description: 著名的开源博客软件和 CMS 系统 -additionalProperties: - key: wordpress - name: WordPress - tags: - - WebSite - shortDescZh: 著名的开源博客软件和 CMS 系统 - shortDescEn: Open source blogging software and content management system - type: website - crossVersionUpdate: true - limit: 0 - recommend: 5 - website: https://wordpress.org/ - github: https://github.com/WordPress/WordPress - document: https://cn.wordpress.org/support/ diff --git a/apps/wordpress/logo.png b/apps/wordpress/logo.png deleted file mode 100644 index ff2e05f3..00000000 Binary files a/apps/wordpress/logo.png and /dev/null differ diff --git a/apps/yesplaymusic/0.4.7/data.yml b/apps/yesplaymusic/0.4.7/data.yml deleted file mode 100644 index cee5de47..00000000 --- a/apps/yesplaymusic/0.4.7/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/apps/yesplaymusic/0.4.7/docker-compose.yml b/apps/yesplaymusic/0.4.7/docker-compose.yml deleted file mode 100644 index 42b28462..00000000 --- a/apps/yesplaymusic/0.4.7/docker-compose.yml +++ /dev/null @@ -1,16 +0,0 @@ -version: '3' -services: - yesplaymusic: - container_name: ${CONTAINER_NAME} - restart: always - networks: - - 1panel-network - ports: - - "${PANEL_APP_PORT_HTTP}:80" - image: fogforest/yesplaymusic:0.4.7 - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true diff --git a/apps/yesplaymusic/README.md b/apps/yesplaymusic/README.md deleted file mode 100644 index eafdc344..00000000 --- a/apps/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/apps/yesplaymusic/data.yml b/apps/yesplaymusic/data.yml deleted file mode 100644 index 69c13e54..00000000 --- a/apps/yesplaymusic/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: YesPlayMusic -tags: - - 多媒体 -title: 一款高颜值的第三方网易云播放器 -type: 多媒体 -description: 一款高颜值的第三方网易云播放器 -additionalProperties: - key: yesplaymusic - name: YesPlayMusic - tags: - - Media - shortDescZh: 一款高颜值的第三方网易云播放器 - shortDescEn: A high-end third-party NetEase cloud player - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://music.qier222.com/ - github: https://github.com/qier222/YesPlayMusic - document: https://github.com/qier222/YesPlayMusic diff --git a/apps/yesplaymusic/logo.png b/apps/yesplaymusic/logo.png deleted file mode 100644 index 3313cb37..00000000 Binary files a/apps/yesplaymusic/logo.png and /dev/null differ diff --git a/apps/yourls/1.9.2/data.yml b/apps/yourls/1.9.2/data.yml deleted file mode 100644 index 1b8e98cf..00000000 --- a/apps/yourls/1.9.2/data.yml +++ /dev/null @@ -1,77 +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 - - default: yourls - envKey: PANEL_DB_NAME - labelEn: Database - labelZh: 数据库名 - random: true - required: true - rule: paramCommon - type: text - - default: yourls - envKey: PANEL_DB_USER - labelEn: User - labelZh: 数据库用户 - random: true - required: true - rule: paramCommon - type: text - - default: yourls - envKey: PANEL_DB_USER_PASSWORD - labelEn: Password - labelZh: 数据库用户密码 - random: true - required: true - rule: paramComplexity - type: password - - default: yourls_ - envKey: PANEL_DB_PREFIX - labelEn: Database prefix - labelZh: 数据库前缀 - required: true - type: text - - default: 40037 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Port - labelZh: 端口 - required: true - rule: paramPort - type: number - - default: yourls - envKey: USERNAME - labelEn: User - labelZh: 用户 - random: true - required: true - rule: paramCommon - type: text - - default: yourls - envKey: PASSWORD - labelEn: Password - labelZh: 用户密码 - random: true - required: true - rule: paramComplexity - type: password - - default: http://localhost:40037 - edit: true - envKey: YOURLS_EXTERNAL_URL - labelEn: External URL - labelZh: 外部访问地址 - required: true - type: text \ No newline at end of file diff --git a/apps/yourls/1.9.2/docker-compose.yml b/apps/yourls/1.9.2/docker-compose.yml deleted file mode 100644 index 37b2b011..00000000 --- a/apps/yourls/1.9.2/docker-compose.yml +++ /dev/null @@ -1,27 +0,0 @@ -version: '3' -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.9.2 - labels: - createdBy: "Apps" - -networks: - 1panel-network: - external: true diff --git a/apps/yourls/README.md b/apps/yourls/README.md deleted file mode 100644 index 47a21ee6..00000000 --- a/apps/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/apps/yourls/data.yml b/apps/yourls/data.yml deleted file mode 100644 index 025a51ab..00000000 --- a/apps/yourls/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: YOURLS -tags: - - 实用工具 -title: PHP 驱动的标准自托管 URL 缩短器 -type: 实用工具 -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: tool - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://yourls.org/ - github: https://github.com/YOURLS/YOURLS - document: https://yourls.org/docs diff --git a/apps/yourls/logo.png b/apps/yourls/logo.png deleted file mode 100644 index 8fecff3e..00000000 Binary files a/apps/yourls/logo.png and /dev/null differ diff --git a/apps/zentao/18.10/data.yml b/apps/zentao/18.10/data.yml deleted file mode 100644 index f6a1b0dd..00000000 --- a/apps/zentao/18.10/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/apps/zentao/18.10/docker-compose.yml b/apps/zentao/18.10/docker-compose.yml deleted file mode 100644 index 7ad90546..00000000 --- a/apps/zentao/18.10/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -version: '3.0' -services: - zentao: - image: hub.zentao.net/app/zentao:18.10 - 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/apps/zentao/README.md b/apps/zentao/README.md deleted file mode 100644 index 44f4525a..00000000 --- a/apps/zentao/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# 禅道 - -禅道是一款功能强大、全面的敏捷项目管理软件,旨在帮助团队规划、跟踪和交付高质量的软件产品。它将项目管理、产品管理、质量管理和文档管理功能融合于一个集成平台中。 - -## 主要功能: - -### 敏捷管理 - -禅道提供敏捷项目管理功能,包括故事管理、任务管理、迭代计划和冲刺等。您可以使用Markdown语法来快速记录和跟踪项目的进度。 - -### 缺陷管理 - -禅道支持缺陷管理,您可以记录和跟踪应用程序中的缺陷,并分配给相应的开发人员进行修复。 - -### 测试管理 - -禅道提供测试计划、用例和执行的管理功能,帮助您确保软件质量。 - -### 项目文档管理 - -您可以使用禅道管理项目文档,包括需求文档、设计文档和用户文档等。 - -### 统计和报告 - -禅道提供各种统计和报告功能,帮助您了解项目进度和团队绩效。 - -### 协作和通知 - -禅道支持团队协作和通知功能,使团队成员能够实时沟通和合作。 diff --git a/apps/zentao/data.yml b/apps/zentao/data.yml deleted file mode 100644 index 67fbb6a2..00000000 --- a/apps/zentao/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: 禅道 -tags: - - DevOps -title: 国产的开源项目管理软件 -type: DevOps -description: 国产的开源项目管理软件 -additionalProperties: - key: zentao - name: 禅道 - tags: - - DevOps - shortDescZh: 国产的开源项目管理软件 - shortDescEn: Domestic open source project management software - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 12 - website: https://www.zentao.net/index.html - github: https://github.com/easysoft/zentaopms - document: https://www.zentao.net/book/zentaopms/38.html diff --git a/apps/zentao/logo.png b/apps/zentao/logo.png deleted file mode 100644 index 8e44803f..00000000 Binary files a/apps/zentao/logo.png and /dev/null differ diff --git a/apps/zfile/4.1.5/data.yml b/apps/zfile/4.1.5/data.yml deleted file mode 100644 index 00e58c2e..00000000 --- a/apps/zfile/4.1.5/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/apps/zfile/4.1.5/docker-compose.yml b/apps/zfile/4.1.5/docker-compose.yml deleted file mode 100644 index 26f01776..00000000 --- a/apps/zfile/4.1.5/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -version: '3' -services: - zfile: - image: zhaojun1998/zfile:4.1.5 - 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/apps/zfile/README.md b/apps/zfile/README.md deleted file mode 100644 index d19efc74..00000000 --- a/apps/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/apps/zfile/data.yml b/apps/zfile/data.yml deleted file mode 100644 index 388da2dc..00000000 --- a/apps/zfile/data.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: ZFile -tags: - - 云存储 -title: 基于 Java 的在线网盘程序 -type: 云存储 -description: 基于 Java 的在线网盘程序 -additionalProperties: - key: zfile - name: ZFile - tags: - - Storage - shortDescZh: 基于 Java 的在线网盘程序 - shortDescEn: Java-based online disk program - type: tool - crossVersionUpdate: true - limit: 0 - recommend: 0 - website: https://www.zfile.vip/ - github: https://github.com/zfile-dev/zfile - document: https://docs.zfile.vip/ diff --git a/apps/zfile/logo.png b/apps/zfile/logo.png deleted file mode 100644 index bc748095..00000000 Binary files a/apps/zfile/logo.png and /dev/null differ