全部產品
Search
文件中心

Serverless App Engine:使用程式碼封裝部署應用

更新時間:Nov 13, 2025

通過程式碼封裝部署應用時,SAE支援的技術棧語言和運行環境如下,部署前需要先製作符合SAE要求的程式碼封裝。如果以下列表不包含您使用的技術棧語言和運行環境,則需要使用鏡像部署應用

Java

運行環境

更新時間

JDK版本

作業系統版本

是否開源

是否維護

說明

Dragonwell 21

2024-07-18

21.0.3.0.3+9

CentOS Linux release 7.9.2009

更多資訊,請見:開源版Dragonwell 21

Dragonwell 17

2022-07-11

17.0.3.0.3+7

CentOS Linux release 7.9.2009

更多資訊,請參見開源版Dragonwell 17

Dragonwell 11

2021-08-27

11.0.10.10-AJDK

CentOS Linux release 7.9.2009

  • 更新Dragonwell與OpenJDK。

  • 更新作業系統版本。

  • 增加中英文字型支援。

  • 啟動速度大幅最佳化。

2020-09-27

更多資訊,請參見開源版Dragonwell 11

Dragonwell 8

2021-10-18

1.8.0_302

CentOS Linux release 7.9.2009

修複小機率CPU佔用高的情況。

2021-08-27

  • 更新Dragonwell與OpenJDK。

  • 更新作業系統版本。

  • 增加中英文字型支援。

  • 啟動速度大幅最佳化。

2020-09-27

預設開啟Wisp協程,Netty NIO相容性問題自查等。更多資訊,請參見開源版Dragonwell 8

OpenJDK 21

2023-09-19

21

Debian 11

OpenJDK 17

2021-09-14

17.0.2

Debian 11

ARMS服務建議使用JDK 17.0.9+

OpenJDK 11

2018-09-25

11.0.16

Debian 11

ARMS服務建議使用JDK 11.0.17+

OpenJDK 8

2019-06-19

1.8.0_191

CentOS Linux release 7.6.1810

OpenJDK 7

2019-02-25

1.7.0_201

CentOS Linux release 7.6.1810

ARMS服務已不再支援此版本

openjdk-8u191-jdk-alpine3.9

2019-02-25

1.8.0_191

alpine 3.9.2

alpine鏡像部分命令與CentOS系統中命令不同。例如:

  • telnet:alpine鏡像中telnet命令不支援-e參數。

  • curl

  • wget

openjdk-7u201-jdk-alpine3.9

2019-02-25

1.7.0_201

alpine 3.9.2

alpine鏡像部分命令與CentOS系統中命令不同。例如:

  • telnet:alpine鏡像中telnet命令不支援-e參數。

  • curl

  • wget

PHP

運行時簡介

線上應用:Nginx結合PHP-FPM

SAE針對PHP Web應用,預設提供LNMP(Linux+Nginx+MySQL+PHP)的運行時環境,包含如下內容:

  • 使用官方PHP-FPM基礎鏡像。

  • 內建官方Nginx。

  • 內建常見PHP擴充。

若您的應用依賴其他資源,可使用如下阿里雲其他產品:

應用監控:ARMS

針對PHP 5.4~7.3版本的SAE應用,您可以通過開啟應用監控,獲得應用間調用鏈Tracing、雲資料庫RDS MySQL和雲資料庫 Tair(相容 Redis)的資源訪問延遲等更詳細的監控資訊。更多資訊,請參見ARMS應用監控概覽

PHP運行時說明

軟體版本

當前公開可用的PHP環境說明如下。如果您需要更高版本的PHP環境,請加入釘群(釘群號:32874633),聯絡產品技術專家進行諮詢。

運行環境

更新時間

PHP版本

Nginx版本

作業系統版本

說明

PHP-FPM 7.3

2021-12-27

7.3.32

1.18.0

Debian 11.0

  • 支援內建字型。

  • 支援內建PHP官方擴充。

  • 支援內建PHP PECL擴充。

PHP-FPM 7.2

2021-09-17

7.2.34

1.18.0

Debian 10.7

PHP-FPM 7.1

2021-09-17

7.1.33

1.18.0

Debian 10.2

PHP-FPM 7.0

2021-09-17

7.0.33

1.18.0

Debian 9.6

PHP-FPM 5.6

2021-09-17

5.6.40

1.18.0

Debian 9.6

PHP-FPM 5.5

2021-09-17

5.5.38

1.18.0

Debian 8.5

PHP-FPM 5.4

2021-09-17

5.4.45

1.18.0

Debian 8.2

系統目錄

SAE PHP環境預設使用如下目錄,提供軟體包部署:

類型

路徑

說明

目錄

/home/admin/app/

軟體包部署預設目錄。

目錄

/home/admin/app/nginx/

  • Nginx網站預設目錄,預設對應Demo包中./nginx/

  • 支援Nginxserver {}配置。具體資訊,請參見ngx_http_core_module

目錄

/home/admin/app/php/

PHP應用程式預設目錄,預設對應Demo包中./php/

檔案

/usr/local/etc/php.ini

SAE推薦php.ini配置路徑。具體資訊,請參見設定PHP應用設定檔

官方PHP-FPM預設配置如下:

類型

路徑

說明

目錄

/usr/local/etc/php

PHP_INI_DIR

目錄

/usr/local/etc/php/conf.d/

PHP內建擴充配置目錄,存放擴充預設ini檔案。

檔案

/usr/local/etc/php-fpm.conf

PHP-FPM預設設定檔。具體資訊,請參見FastCGI進程管理器(FPM)。如何修改,請參見管理和使用配置項(K8s ConfigMap)

官方Nginx預設配置如下:

類型

路徑

說明

檔案

/usr/sbin/nginx

Nginx官方程式。

目錄

/etc/nginx/

Nginx預設配置目錄。

檔案

/etc/nginx/nginx.conf

Nginx預設設定檔nginx.conf,包含http {}配置。其中http {}預設引用/home/admin/app/nginx/配置。如何修改,請參見管理和使用配置項(K8s ConfigMap)

內建擴充

SAE提供的PHP環境支援以下擴充:

相關許可權

官方PHP-FPM與Nginx預設使用www-data使用者運行應用。許可權相關說明如下:

服務

許可權USER GROUP

說明

PHP-FPM

進程

www-data www-data

PHP預設,設定檔路徑為/usr/local/etc/php-fpm.conf

Nginx

進程

www-data www-data

Nginx預設,設定檔路徑為/etc/nginx/nginx.conf

檔案目錄

目錄

root root

程式碼封裝部署目錄,配置目錄為/home/admin/app/。樣本如下:

drwxrwxrwx 2 root root 4096 May 13  2021 nginx
drwxrwxrwx 1 root root 4096 Apr  8 11:45 php
重要

建議您不要修改使用者,否則可能會出現應用運行失敗的情況。

PHP擴充支援

官方與PECL擴充

您可以在部署應用時配置php.ini檔案來擴充內建,包括官方與PECL擴充。具體操作,請參見設定PHP應用設定檔

在Webshell內執行以下命令,擷取具體的內建擴充。關於如何開啟Webshell,請參見查看Webshell

php -m

不同運行環境的擴充內建支援,輸出樣本如下:

PECL 7.3

[PHP Modules]
amqp
ARMS
bcmath
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gettext
gmp
hash
iconv
igbinary
imagick
json
libxml
mbstring
mcrypt
memcached
mongodb
msgpack
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
redis
Reflection
session
shmop
SimpleXML
soap
sockets
sodium
SPL
sqlite3
standard
swoole
sysvmsg
sysvsem
sysvshm
timezonedb
tokenizer
xdebug
xml
xmlreader
xmlrpc
xmlwriter
yaml
Zend OPcache
zip
zlib

[Zend Modules]
Xdebug
Zend OPcache

PECL 7.2

[PHP Modules]
amqp
ARMS
bcmath
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gettext
gmp
hash
iconv
igbinary
imagick
json
libxml
mbstring
mcrypt
memcached
mongodb
msgpack
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
redis
Reflection
session
shmop
SimpleXML
soap
sockets
sodium
SPL
sqlite3
standard
swoole
sysvmsg
sysvsem
sysvshm
timezonedb
tokenizer
xdebug
xml
xmlreader
xmlrpc
xmlwriter
yaml
Zend OPcache
zip
zlib

[Zend Modules]
Xdebug
Zend OPcache

PECL 7.1

[PHP Modules]
amqp
ARMS
bcmath
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gettext
gmp
hash
iconv
igbinary
imagick
json
libxml
mbstring
mcrypt
memcached
mongodb
msgpack
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
redis
Reflection
session
shmop
SimpleXML
soap
sockets
sodium
SPL
sqlite3
standard
swoole
sysvmsg
sysvsem
sysvshm
timezonedb
tokenizer
xdebug
xml
xmlreader
xmlrpc
xmlwriter
yaml
Zend OPcache
zip
zlib

[Zend Modules]
Xdebug
Zend OPcache

PECL 7.0

[PHP Modules]
amqp
ARMS
bcmath
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gettext
gmp
hash
iconv
igbinary
imagick
json
libxml
mbstring
memcached
mongodb
msgpack
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
redis
Reflection
session
shmop
SimpleXML
soap
sockets
sodium
SPL
sqlite3
standard
swoole
sysvmsg
sysvsem
sysvshm
timezonedb
tokenizer
xdebug
xml
xmlreader
xmlrpc
xmlwriter
yaml
Zend OPcache
zip
zlib

[Zend Modules]
Xdebug
Zend OPcache

PECL 5.6

[PHP Modules]
amqp
ARMS
bcmath
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gettext
gmp
hash
iconv
igbinary
imagick
json
libxml
mbstring
memcached
mongodb
msgpack
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
redis
Reflection
session
shmop
SimpleXML
soap
sockets
sodium
SPL
sqlite3
standard
swoole
sysvmsg
sysvsem
sysvshm
timezonedb
tokenizer
xdebug
xml
xmlreader
xmlrpc
xmlwriter
yaml
Zend OPcache
zip
zlib

[Zend Modules]
Xdebug
Zend OPcache

PECL 5.5

[PHP Modules]
amqp
ARMS
bcmath
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gettext
gmp
hash
iconv
igbinary
imagick
json
libxml
mbstring
memcached
mongodb
msgpack
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
redis
Reflection
session
shmop
SimpleXML
soap
sockets
sodium
SPL
sqlite3
standard
swoole
sysvmsg
sysvsem
sysvshm
timezonedb
tokenizer
xdebug
xml
xmlreader
xmlrpc
xmlwriter
yaml
Zend OPcache
zip
zlib

[Zend Modules]
Xdebug
Zend OPcache

PECL 5.4

[PHP Modules]
amqp
ARMS
bcmath
bz2
calendar
Core
ctype
curl
date
dom
ereg
exif
fileinfo
filter
ftp
gettext
gmp
hash
iconv
igbinary
imagick
json
libxml
mbstring
memcached
mongodb
msgpack
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
recode
redis
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
sqlite3
standard
swoole
sysvmsg
sysvsem
sysvshm
timezonedb
tokenizer
xdebug
xml
xmlreader
xmlrpc
xmlwriter
yaml
zip
zlib

[Zend Modules]
Xdebug

通過控制台與API安裝擴充

通過SAE控制台或API,可以開啟PHP官方擴充,或安裝制定版本PECL擴充。具體操作,請參見部署PHP應用

安裝第三方擴充

本文以PHP-FPM 7.3環境,源碼編譯安裝YAML擴充為例,示範如何安裝第三方擴充。

  1. 建立一個運行環境為PHP 7.3的SAE應用。

  2. 開通公網訪問。

  3. 通過Webshell登入執行個體,執行以下命令安裝並編譯擴充。

    # 擷取源碼
    wget https://pecl.php.net/get/yaml-2.2.2.tgz
    tar -zxvf yaml-2.2.2.tgz
    # 編譯安裝
    cd yaml-2.2.2 && \
    phpize && \
    ./configure && \
    make && make install
  4. 將擴充下載到本地。具體操作,請參見通過日誌上傳下載診斷應用

    擴充地址如下:

    /home/admin/yaml-2.2.2/modules/yaml.so
  5. 將擴充打包到ZIP包中。ZIP包結構如下:

    .
    ├── nginx
    │ ├── default.conf
    │ ├── fastcgi_params
    │ ├── global
    │ └── root.dir
    ├── php
    │ ├── index.php
    └── extensions
     └── yaml.so
  6. 部署應用,上傳新ZIP包,並添加php.ini配置啟用擴充。

    extension=/home/admin/app/extensions/yaml.so
  7. 通過Webshell登入執行個體,確認擴充載入成功。

    # php -m | grep yaml
    yaml

常見配置說明

預設服務連接埠

SAE配置的Nginx、PHP-FPM程式預設的服務連接埠值如下:

程式

連接埠

Nginx

80

PHP-FPM

127.0.0.1:9000

PHP-FPM日誌:標準輸出

  • PHP-FPM日誌,預設輸出到即時日誌。配置如下,設定檔路徑為/usr/local/etc/php-fpm.d/docker.conf

    [global]
    error_log = /proc/self/fd/2
    log_limit = 8192
    
    [www]
    access.log = /proc/self/fd/2
  • PHP錯誤記錄檔,預設未配置展示。配置如下,來源php.ini檔案:

    error_log => no value => no value
    log_errors => Off => Off
    log_errors_max_len => 1024 => 1024
  • 如需開啟錯誤記錄檔輸出到即時日誌,請在建立或部署應用時配置php.ini配置,並指向如下路徑:

    log_errors = on
    error_log = /proc/self/fd/2

Nginx日誌:標準輸出

  • Nginx日誌,預設輸出到即時日誌。配置如下,設定檔路徑為./nginx/default.conf

    #access_log /dev/stdout;
    error_log stderr;
  • 可開啟access_log,預設輸出到即時日誌。

檔案快取:靜態檔案、圖片、媒體

針對PHP代碼,您可以配置php.ini開啟或關閉OPcache。SAE預設開啟OPcache。具體配置,請參考OPcache運行時配置

  • 開啟OPcache:適用於線上網站,提升代碼執行速度,降低磁碟IO。

  • 關閉OPcache:適用於調試情境,代碼變更可即時生效。

php.ini配置如下:

; 開啟 OPcache
opcache.enable=1
; 關閉 OPcache
;opcache.enable=0

檔案快取:PHP代碼

針對大量靜態檔案,例如圖片、視頻、CSS和JS檔案等,您可以開啟或關閉Nginx靜態檔案快取。具體配置,請參見DemoModule ngx_http_headers_module

  • 開啟靜態資源緩衝:適用於線上服務、大量媒體檔案網站等情境,提升頻寬吞吐能力、降低IOPS讀取壓力。

  • 關閉靜態資源緩衝:適用於遠端偵錯、上傳下載等情境,可即時訪問檔案。

./nginx/default.conf配置如下:

    # 靜態資源緩衝
    location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
        # 關閉緩衝
        #expires off;
        # 開啟緩衝
        expires 1s;
    }

增強說明

熱重啟服務

  • 通過ConfigMap,可以動態配置和修改檔案內容。

  • 通過Webshell,可以動態重啟服務。

    • 熱重啟Nginx(不停服)

      # 測試組態檔案有效性
      nginx -t
      # 動態重啟
      nginx -s reload
    • 熱重啟php-fpm(有一定機率斷流,需要檢查php.ini配置

      ps uax | grep 'php-fpm: master' | grep -v grep | awk '{print $2}' | xargs kill -USR2

上傳下載

SAE支援多種上傳下載檔案的方式,您可以按需選擇:

Python

運行環境

更新時間

作業系統版本

說明

Python 3.9.15

2022-10-11

Debian 11.0

更多資訊,請見:Python 3.9.15

.NET Core

為了便於開發與部署,SAE的基礎鏡像是基於.NET官方提供的基礎鏡像構建的,並且進行了預配置,包括增加了一些常見的問題排查工具及字型包。

版本號碼

基礎鏡像

作業系統

運行時

3.1

mcr.microsoft.com/dotnet/aspnet:3.1

Debian GNU/Linux 10 (buster)

  • Microsoft.AspNetCore.App 3.1.32

  • Microsoft.NETCore.App 3.1.32

5.0

mcr.microsoft.com/dotnet/aspnet:5.0

Debian GNU/Linux 10 (buster)

  • Microsoft.AspNetCore.App 5.0.17

  • Microsoft.NETCore.App 5.0.17

6.0

mcr.microsoft.com/dotnet/aspnet:6.0

Debian GNU/Linux 11 (bullseye)

  • Microsoft.AspNetCore.App 6.0.33

  • Microsoft.NETCore.App 6.0.33

7.0

mcr.microsoft.com/dotnet/aspnet:7.0

Debian GNU/Linux 11 (bullseye)

  • Microsoft.AspNetCore.App 7.0.20

  • Microsoft.NETCore.App 7.0.20

8.0

mcr.microsoft.com/dotnet/aspnet:8.0

Debian GNU/Linux 12 (bookworm)

  • Microsoft.AspNetCore.App 8.0.8

  • Microsoft.NETCore.App 8.0.8

9.0

mcr.microsoft.com/dotnet/aspnet:9.0

Debian GNU/Linux 12 (bookworm)

  • Microsoft.AspNetCore.App 9.0.6

  • Microsoft.NETCore.App 9.0.6

HTML

運行環境

Nginx版本

基礎鏡像

作業系統版本

nginx 1.20

1.20.2

nginx:1.20

Debian GNU/Linux 11 (bullseye)

nginx 1.22

1.22.1

nginx:1.22

Debian GNU/Linux 11 (bullseye)

nginx 1.24

1.24.0

nginx:1.24

Debian GNU/Linux 11 (bullseye)

nginx 1.26

1.26.3

nginx:1.26

Debian GNU/Linux 12 (bookworm)

nginx 1.28

1.28.0

nginx:1.28

Debian GNU/Linux 12 (bookworm)