add caddyserver with php-fpm.
This commit is contained in:
parent
0b26137b1d
commit
bd1994a61f
@ -3,6 +3,9 @@ FROM caddy:alpine as caddy-build
|
|||||||
FROM php:8.3-fpm-alpine3.19
|
FROM php:8.3-fpm-alpine3.19
|
||||||
LABEL maintainer="rainerosion <admin@rainss.cn>"
|
LABEL maintainer="rainerosion <admin@rainss.cn>"
|
||||||
|
|
||||||
|
ENV XDG_CONFIG_HOME /config
|
||||||
|
ENV XDG_DATA_HOME /data
|
||||||
|
|
||||||
# build dependencies
|
# build dependencies
|
||||||
ENV BUILD_DEPS \
|
ENV BUILD_DEPS \
|
||||||
libzip-dev \
|
libzip-dev \
|
||||||
@ -61,41 +64,56 @@ ARG UID=1000
|
|||||||
ARG GUID=1000
|
ARG GUID=1000
|
||||||
# fpm user
|
# fpm user
|
||||||
ARG USER=www-data
|
ARG USER=www-data
|
||||||
RUN set -eux && \
|
# web server and php-fpm
|
||||||
sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories && \
|
|
||||||
apk update && \
|
|
||||||
apk add --no-cache $RUN_DEPS && \
|
|
||||||
usermod -u $UID -o $USER && \
|
|
||||||
groupmod -g $GUID -o $USER && \
|
|
||||||
apk add --no-cache --virtual .build-deps $BUILD_DEPS && \
|
|
||||||
docker-php-ext-configure gd --enable-gd --with-jpeg --with-webp --with-freetype && \
|
|
||||||
docker-php-ext-install -j $(nproc) $PHP_EXTENSIONS && \
|
|
||||||
pecl install -o -f redis && \
|
|
||||||
pecl install memcached imagick && \
|
|
||||||
docker-php-ext-enable redis memcached imagick && \
|
|
||||||
apk del .build-deps \
|
|
||||||
|
|
||||||
# web server
|
|
||||||
RUN set -eux; \
|
RUN set -eux; \
|
||||||
apkArch="$(apk --print-arch)"; \
|
sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories; \
|
||||||
case "$apkArch" in \
|
apk update; \
|
||||||
x86_64) binArch='amd64'; checksum='b74311ec8263f30f6d36e5c8be151e8bc092b377789a55300d5671238b9043de5bd6db2bcefae32aa1e6fe94c47bbf02982c44a7871e5777b2596fdb20907cbf' ;; \
|
apk add --no-cache $RUN_DEPS; \
|
||||||
armhf) binArch='armv6'; checksum='88756642ca412db3a8da7a40b518861a6f524a8ac704021e8451d3cb38746f24243b1e561f4eec07e1575200d06bfd098783d2b7ee7ee07a971aed1c677da6e6' ;; \
|
usermod -u $UID -o $USER; \
|
||||||
armv7) binArch='armv7'; checksum='118776e879c280556abb7c03ff7c0081eda23c2aee0472aef176f733785e9501defaeaf334cd2443e31294809beafaea831d2e695aa68045160082aa3a966e2f' ;; \
|
groupmod -g $GUID -o $USER; \
|
||||||
aarch64) binArch='arm64'; checksum='62252ade5e8dcec13a66154ee1978d959370be049cce52e7c4edefff14ef70bbb21630e3735092719bc3c31214e89dff99e55970ff0adec8ac0a94c6415b059a' ;; \
|
apk add --no-cache --virtual .build-deps $BUILD_DEPS; \
|
||||||
ppc64el|ppc64le) binArch='ppc64le'; checksum='65d27fe53f5e4fa79f3476f8902071c907aab74db1a2616342be3714d4252219fbb53b174ef588e20c51e7cfac84376c7a0a608091c2fe83b31dbf59dabeb237' ;; \
|
mkdir -p \
|
||||||
s390x) binArch='s390x'; checksum='c562190962a2db0248a4190616dd2ebaa02df2cf62f1a2c71f9d9de18af2a297df8000a06a11e8d3929dfd64f0c081d1e61961687ca220007459f2dbd0be2c81' ;; \
|
/config/caddy \
|
||||||
*) echo >&2 "error: unsupported architecture ($apkArch)"; exit 1 ;;\
|
/data/caddy \
|
||||||
esac; \
|
/etc/caddy \
|
||||||
wget -O /tmp/caddy.tar.gz "https://github.com/caddyserver/caddy/releases/download/v2.7.6/caddy_2.7.6_linux_${binArch}.tar.gz"; \
|
/usr/share/caddy ; \
|
||||||
echo "$checksum /tmp/caddy.tar.gz" | sha512sum -c; \
|
wget -O /etc/caddy/Caddyfile "https://p.iblog.site/https://github.com/caddyserver/dist/raw/cd39178d252a610fee6aa8465c787d9c780007a2/config/Caddyfile"; \
|
||||||
tar x -z -f /tmp/caddy.tar.gz -C /usr/bin caddy; \
|
wget -O /usr/share/caddy/index.html "https://p.iblog.site/https://github.com/caddyserver/dist/raw/cd39178d252a610fee6aa8465c787d9c780007a2/welcome/index.html"; \
|
||||||
rm -f /tmp/caddy.tar.gz; \
|
echo "<?php phpinfo();" > /usr/share/caddy/info.php; \
|
||||||
setcap cap_net_bind_service=+ep /usr/bin/caddy; \
|
apkArch="$(apk --print-arch)"; \
|
||||||
chmod +x /usr/bin/caddy; \
|
case "$apkArch" in \
|
||||||
caddy version \
|
x86_64) binArch='amd64'; checksum='b74311ec8263f30f6d36e5c8be151e8bc092b377789a55300d5671238b9043de5bd6db2bcefae32aa1e6fe94c47bbf02982c44a7871e5777b2596fdb20907cbf' ;; \
|
||||||
ENV XDG_CONFIG_HOME /config
|
armhf) binArch='armv6'; checksum='88756642ca412db3a8da7a40b518861a6f524a8ac704021e8451d3cb38746f24243b1e561f4eec07e1575200d06bfd098783d2b7ee7ee07a971aed1c677da6e6' ;; \
|
||||||
ENV XDG_DATA_HOME /data
|
armv7) binArch='armv7'; checksum='118776e879c280556abb7c03ff7c0081eda23c2aee0472aef176f733785e9501defaeaf334cd2443e31294809beafaea831d2e695aa68045160082aa3a966e2f' ;; \
|
||||||
EXPOSE 80 443 2019
|
aarch64) binArch='arm64'; checksum='62252ade5e8dcec13a66154ee1978d959370be049cce52e7c4edefff14ef70bbb21630e3735092719bc3c31214e89dff99e55970ff0adec8ac0a94c6415b059a' ;; \
|
||||||
|
ppc64el|ppc64le) binArch='ppc64le'; checksum='65d27fe53f5e4fa79f3476f8902071c907aab74db1a2616342be3714d4252219fbb53b174ef588e20c51e7cfac84376c7a0a608091c2fe83b31dbf59dabeb237' ;; \
|
||||||
|
s390x) binArch='s390x'; checksum='c562190962a2db0248a4190616dd2ebaa02df2cf62f1a2c71f9d9de18af2a297df8000a06a11e8d3929dfd64f0c081d1e61961687ca220007459f2dbd0be2c81' ;; \
|
||||||
|
*) echo >&2 "error: unsupported architecture ($apkArch)"; exit 1 ;;\
|
||||||
|
esac; \
|
||||||
|
wget -O /tmp/caddy.tar.gz "https://github.com/caddyserver/caddy/releases/download/v2.7.6/caddy_2.7.6_linux_${binArch}.tar.gz"; \
|
||||||
|
echo "$checksum /tmp/caddy.tar.gz" | sha512sum -c; \
|
||||||
|
tar x -z -f /tmp/caddy.tar.gz -C /usr/bin caddy; \
|
||||||
|
rm -f /tmp/caddy.tar.gz; \
|
||||||
|
setcap cap_net_bind_service=+ep /usr/bin/caddy; \
|
||||||
|
chmod +x /usr/bin/caddy; \
|
||||||
|
caddy version; \
|
||||||
|
# docker-php-ext-configure gd --enable-gd --with-jpeg --with-webp --with-freetype; \
|
||||||
|
# docker-php-ext-install -j $(nproc) $PHP_EXTENSIONS; \
|
||||||
|
# pecl install -o -f redis; \
|
||||||
|
# pecl install memcached imagick; \
|
||||||
|
# docker-php-ext-enable redis memcached imagick; \
|
||||||
|
apk del .build-deps; \
|
||||||
|
curl --tlsv1 -v -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer;
|
||||||
|
|
||||||
|
EXPOSE 80
|
||||||
|
EXPOSE 443
|
||||||
|
EXPOSE 2019
|
||||||
EXPOSE 443/udp
|
EXPOSE 443/udp
|
||||||
|
|
||||||
|
COPY entrypoint.sh /usr/local/bin/
|
||||||
|
RUN chmod +x /usr/local/bin/entrypoint.sh
|
||||||
|
|
||||||
WORKDIR /srv
|
WORKDIR /srv
|
||||||
|
|
||||||
|
ENTRYPOINT ["entrypoint.sh"]
|
||||||
|
CMD ["caddy","run","--config","/etc/caddy/Caddyfile","--adapter","caddyfile"]
|
||||||
@ -1,6 +1,26 @@
|
|||||||
|
# The Caddyfile is an easy way to configure your Caddy web server.
|
||||||
|
#
|
||||||
|
# Unless the file starts with a global options block, the first
|
||||||
|
# uncommented line is always the address of your site.
|
||||||
|
#
|
||||||
|
# To use your own domain name (with automatic HTTPS), first make
|
||||||
|
# sure your domain's A/AAAA DNS records are properly pointed to
|
||||||
|
# this machine's public IP, then replace ":80" below with your
|
||||||
|
# domain name.
|
||||||
|
|
||||||
:80 {
|
:80 {
|
||||||
encode gzip
|
# Set this path to your site's directory.
|
||||||
root * /www/websites/public
|
root * /usr/share/caddy
|
||||||
php_fastcgi php-fpm:9000
|
|
||||||
file_server
|
# Enable the static file server.
|
||||||
|
file_server
|
||||||
|
|
||||||
|
# Another common task is to set up a reverse proxy:
|
||||||
|
# reverse_proxy localhost:8080
|
||||||
|
|
||||||
|
# Or serve a PHP site through php-fpm:
|
||||||
|
# php_fastcgi localhost:9000
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Refer to the Caddy docs for more information:
|
||||||
|
# https://caddyserver.com/docs/caddyfile
|
||||||
6
caddy-with-php/config/Caddyfile.php-fpm
Normal file
6
caddy-with-php/config/Caddyfile.php-fpm
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
:80 {
|
||||||
|
encode gzip
|
||||||
|
root * /www/websites/public
|
||||||
|
php_fastcgi 127.0.0.1:9000
|
||||||
|
file_server
|
||||||
|
}
|
||||||
394
caddy-with-php/config/index.html
Normal file
394
caddy-with-php/config/index.html
Normal file
@ -0,0 +1,394 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Caddy works!</title>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<link rel="icon" href="data:,">
|
||||||
|
<style>
|
||||||
|
* {
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
background: #f1f4f5;
|
||||||
|
font-family: Inter, sans-serif;
|
||||||
|
font-size: 20px;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #2f79ff;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.stack {
|
||||||
|
width: 70%;
|
||||||
|
max-width: 1150px;
|
||||||
|
margin: 25px 0 150px 25px;
|
||||||
|
display: flex;
|
||||||
|
align-content: flex-start;
|
||||||
|
}
|
||||||
|
|
||||||
|
.paper {
|
||||||
|
position: relative;
|
||||||
|
flex-shrink: 0;
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
background: white;
|
||||||
|
border-radius: 3px;
|
||||||
|
box-shadow: 1px 2px 4px 1px rgba(0, 0, 0, .15);
|
||||||
|
padding: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#paper1 {
|
||||||
|
top: 45px;
|
||||||
|
left: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#paper2 {
|
||||||
|
top: 20px;
|
||||||
|
left: -100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#paper3 {
|
||||||
|
top: 25px;
|
||||||
|
transform: rotate(-4deg);
|
||||||
|
left: -200%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#caddy {
|
||||||
|
max-width: 300px;
|
||||||
|
margin-bottom: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#caddy .caddy-color {
|
||||||
|
fill: #005e7e;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 20px;
|
||||||
|
margin-bottom: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 .emoji {
|
||||||
|
font-size: 150%;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 .lang {
|
||||||
|
margin-right: 1.25em;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: 28px;
|
||||||
|
margin-top: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
p,
|
||||||
|
ol,
|
||||||
|
ul {
|
||||||
|
color: #333;
|
||||||
|
line-height: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin: 1.5em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ol,
|
||||||
|
ul {
|
||||||
|
margin: .5em 0 .5em 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
ol li,
|
||||||
|
ul li {
|
||||||
|
margin-left: 1em;
|
||||||
|
margin-bottom: .5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
li ol {
|
||||||
|
list-style-type: lower-alpha;
|
||||||
|
}
|
||||||
|
|
||||||
|
code {
|
||||||
|
color: #000;
|
||||||
|
font-family: Menlo, monospace;
|
||||||
|
background: #f0f0f0;
|
||||||
|
border-radius: 2px;
|
||||||
|
padding: 4px 8px;
|
||||||
|
font-size: 90%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.warn {
|
||||||
|
color: #dd0000;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer {
|
||||||
|
color: #777;
|
||||||
|
font-size: 16px;
|
||||||
|
text-align: center;
|
||||||
|
max-width: 600px;
|
||||||
|
margin: 0 auto 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#disclaimer {
|
||||||
|
font-size: 14px;
|
||||||
|
margin-top: 20px;
|
||||||
|
display: inline-block;
|
||||||
|
border-top: 1px solid #ccc;
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 1100px) {
|
||||||
|
.stack {
|
||||||
|
width: 85%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 800px) {
|
||||||
|
.stack {
|
||||||
|
margin: 0 0 50px 0;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.paper {
|
||||||
|
padding: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#paper1,
|
||||||
|
#paper2 {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#paper3 {
|
||||||
|
left: 0;
|
||||||
|
transform: none;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#caddy {
|
||||||
|
max-width: 300px;
|
||||||
|
margin-bottom: 45px;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="stack">
|
||||||
|
<div class="paper" id="paper1"></div>
|
||||||
|
<div class="paper" id="paper2"></div>
|
||||||
|
<div class="paper" id="paper3">
|
||||||
|
<a href="https://caddyserver.com/" title="Caddy Web Server">
|
||||||
|
<svg id="caddy" viewBox="0 0 379 114" version="1.1" xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/"
|
||||||
|
style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;">
|
||||||
|
<g transform="matrix(1,0,0,1,-35.5985,-67.948)">
|
||||||
|
<g transform="matrix(1.16548,0,0,1.10195,-124,-68.27)">
|
||||||
|
<g id="Light-Logo" serif:id="Light Logo"
|
||||||
|
transform="matrix(0.858013,0,0,0.907485,-3243.42,-1469.17)">
|
||||||
|
<g id="Logo" transform="matrix(1,0,0,1,21.4759,36.7359)">
|
||||||
|
<g id="Icon">
|
||||||
|
<g>
|
||||||
|
<g
|
||||||
|
transform="matrix(-0.191794,-0.715786,0.715786,-0.191794,4329.14,4673.64)">
|
||||||
|
<path
|
||||||
|
d="M3901.56,610.734C3893.53,610.261 3886.06,608.1 3879.2,604.877C3872.24,601.608 3866.04,597.093 3860.8,591.633C3858.71,589.457 3856.76,587.149 3854.97,584.709C3853.2,582.281 3851.57,579.733 3850.13,577.066C3845.89,569.224 3843.21,560.381 3842.89,550.868C3842.57,543.321 3843.64,536.055 3845.94,529.307C3848.37,522.203 3852.08,515.696 3856.83,510.049L3855.79,509.095C3850.39,514.54 3846.02,520.981 3842.9,528.125C3839.84,535.125 3838.03,542.781 3837.68,550.868C3837.34,561.391 3839.51,571.425 3843.79,580.306C3845.27,583.38 3847.03,586.304 3849.01,589.049C3851.01,591.806 3853.24,594.39 3855.69,596.742C3861.75,602.568 3869,607.19 3877.03,610.1C3884.66,612.867 3892.96,614.059 3901.56,613.552L3901.56,610.734Z"
|
||||||
|
style="fill:rgb(31,136,192);" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
transform="matrix(-0.191794,-0.715786,0.715786,-0.191794,4329.14,4673.64)">
|
||||||
|
<path
|
||||||
|
d="M3875.69,496.573C3879.62,494.538 3883.8,492.897 3888.2,491.786C3892.49,490.704 3896.96,490.124 3901.56,490.032C3903.82,490.13 3906.03,490.332 3908.21,490.688C3917.13,492.147 3925.19,495.814 3932.31,500.683C3936.13,503.294 3939.59,506.335 3942.81,509.619C3947.09,513.98 3950.89,518.816 3953.85,524.232C3958.2,532.197 3960.96,541.186 3961.32,550.868C3961.61,558.748 3960.46,566.345 3957.88,573.322C3956.09,578.169 3953.7,582.753 3950.66,586.838C3947.22,591.461 3942.96,595.427 3938.27,598.769C3933.66,602.055 3928.53,604.619 3923.09,606.478C3922.37,606.721 3921.6,606.805 3920.93,607.167C3920.42,607.448 3920.14,607.854 3919.69,608.224L3920.37,610.389C3920.98,610.432 3921.47,610.573 3922.07,610.474C3922.86,610.344 3923.55,609.883 3924.28,609.566C3931.99,606.216 3938.82,601.355 3944.57,595.428C3947.02,592.903 3949.25,590.174 3951.31,587.319C3953.59,584.168 3955.66,580.853 3957.43,577.348C3961.47,569.34 3964.01,560.422 3964.36,550.868C3964.74,540.511 3962.66,530.628 3958.48,521.868C3955.57,515.775 3951.72,510.163 3946.95,505.478C3943.37,501.962 3939.26,498.99 3934.84,496.562C3926.88,492.192 3917.87,489.76 3908.37,489.229C3906.12,489.104 3903.86,489.054 3901.56,489.154C3896.87,489.06 3892.3,489.519 3887.89,490.397C3883.3,491.309 3878.89,492.683 3874.71,494.525L3875.69,496.573Z"
|
||||||
|
style="fill:rgb(31,136,192);" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<g transform="matrix(-3.37109,-0.514565,0.514565,-3.37109,4078.07,1806.88)">
|
||||||
|
<path
|
||||||
|
d="M22,12C22,10.903 21.097,10 20,10C19.421,10 18.897,10.251 18.53,10.649C18.202,11.006 18,11.481 18,12C18,13.097 18.903,14 20,14C21.097,14 22,13.097 22,12Z"
|
||||||
|
style="fill:none;fill-rule:nonzero;stroke:rgb(31,136,192);stroke-width:1.05px;" />
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(-5.33921,-5.26159,-3.12106,-6.96393,4073.87,1861.55)">
|
||||||
|
<path
|
||||||
|
d="M10.315,5.333C10.315,5.333 9.748,5.921 9.03,6.673C7.768,7.995 6.054,9.805 6.054,9.805L6.237,9.86C6.237,9.86 8.045,8.077 9.36,6.771C10.107,6.028 10.689,5.444 10.689,5.444L10.315,5.333Z"
|
||||||
|
style="fill:rgb(31,136,192);" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g id="Padlock" transform="matrix(3.11426,0,0,3.11426,3938.31,1737.25)">
|
||||||
|
<g>
|
||||||
|
<path
|
||||||
|
d="M9.876,21L18.162,21C18.625,21 19,20.625 19,20.162L19,11.838C19,11.375 18.625,11 18.162,11L5.838,11C5.375,11 5,11.375 5,11.838L5,16.758"
|
||||||
|
style="fill:none;stroke:rgb(34,182,56);stroke-width:1.89px;stroke-linecap:butt;stroke-linejoin:miter;" />
|
||||||
|
<path d="M8,11L8,7C8,4.806 9.806,3 12,3C14.194,3 16,4.806 16,7L16,11"
|
||||||
|
style="fill:none;fill-rule:nonzero;stroke:rgb(34,182,56);stroke-width:1.89px;" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<g transform="matrix(5.30977,0.697415,-0.697415,5.30977,3852.72,1727.97)">
|
||||||
|
<path
|
||||||
|
d="M22,12C22,11.659 21.913,11.337 21.76,11.055C21.421,10.429 20.756,10 20,10C18.903,10 18,10.903 18,12C18,13.097 18.903,14 20,14C21.097,14 22,13.097 22,12Z"
|
||||||
|
style="fill:none;fill-rule:nonzero;stroke:rgb(31,136,192);stroke-width:0.98px;" />
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(4.93114,2.49604,1.11018,5.44847,3921.41,1726.72)">
|
||||||
|
<path
|
||||||
|
d="M8.902,6.77C8.902,6.77 7.235,8.253 6.027,9.366C5.343,9.996 4.819,10.502 4.819,10.502L5.52,11.164C5.52,11.164 6.021,10.637 6.646,9.951C7.749,8.739 9.219,7.068 9.219,7.068L8.902,6.77Z"
|
||||||
|
style="fill:rgb(31,136,192);" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g id="Wordmark" transform="matrix(1.54159,0,0,2.8744,2710.6,709.804)">
|
||||||
|
<g id="y" transform="matrix(0.50291,0,0,0.281607,905.533,304.987)">
|
||||||
|
<path
|
||||||
|
d="M192.152,286.875L202.629,268.64C187.804,270.106 183.397,265.779 180.143,263.391C176.888,261.004 174.362,257.99 172.563,254.347C170.765,250.705 169.866,246.691 169.866,242.305L169.866,208.107L183.21,208.107L183.21,242.213C183.21,245.188 183.896,247.822 185.268,250.116C186.64,252.41 188.465,254.197 190.743,255.475C193.022,256.754 195.501,257.393 198.182,257.393C200.894,257.393 203.393,256.75 205.68,255.463C207.966,254.177 209.799,252.391 211.178,250.105C212.558,247.818 213.248,245.188 213.248,242.213L213.248,208.107L226.545,208.107L226.545,242.305C226.545,246.707 225.378,258.46 218.079,268.64C215.735,271.909 207.835,286.875 207.835,286.875L192.152,286.875Z"
|
||||||
|
style="fill:rgb(47,47,47);fill-rule:nonzero;" />
|
||||||
|
</g>
|
||||||
|
<g id="add" transform="matrix(0.525075,0,0,0.281607,801.871,304.987)">
|
||||||
|
<g transform="matrix(116.242,0,0,116.242,161.846,267.39)">
|
||||||
|
<path
|
||||||
|
d="M0.276,0.012C0.227,0.012 0.186,0 0.15,-0.024C0.115,-0.048 0.088,-0.08 0.069,-0.12C0.05,-0.161 0.04,-0.205 0.04,-0.254C0.04,-0.305 0.051,-0.35 0.072,-0.39C0.094,-0.431 0.125,-0.463 0.165,-0.487C0.205,-0.51 0.254,-0.522 0.31,-0.522C0.366,-0.522 0.413,-0.51 0.452,-0.486C0.491,-0.463 0.521,-0.431 0.542,-0.39C0.562,-0.35 0.573,-0.305 0.573,-0.256L0.573,-0L0.458,-0L0.458,-0.095L0.456,-0.095C0.446,-0.076 0.433,-0.058 0.417,-0.042C0.401,-0.026 0.381,-0.013 0.358,-0.003C0.335,0.007 0.307,0.012 0.276,0.012ZM0.307,-0.086C0.337,-0.086 0.363,-0.093 0.386,-0.108C0.408,-0.123 0.426,-0.144 0.438,-0.17C0.45,-0.195 0.456,-0.224 0.456,-0.256C0.456,-0.288 0.45,-0.317 0.438,-0.342C0.426,-0.367 0.409,-0.387 0.387,-0.402C0.365,-0.417 0.338,-0.424 0.308,-0.424C0.276,-0.424 0.249,-0.417 0.226,-0.402C0.204,-0.387 0.186,-0.366 0.174,-0.341C0.162,-0.315 0.156,-0.287 0.156,-0.255C0.156,-0.224 0.162,-0.195 0.174,-0.169C0.186,-0.144 0.203,-0.123 0.226,-0.108C0.248,-0.093 0.275,-0.086 0.307,-0.086Z"
|
||||||
|
style="fill:rgb(47,47,47);fill-rule:nonzero;" />
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(116.242,0,0,116.242,226.592,267.39)">
|
||||||
|
<path
|
||||||
|
d="M0.306,0.012C0.265,0.012 0.229,0.006 0.196,-0.008C0.163,-0.021 0.135,-0.039 0.112,-0.064C0.089,-0.088 0.071,-0.117 0.059,-0.151C0.046,-0.185 0.04,-0.222 0.04,-0.263C0.04,-0.315 0.051,-0.36 0.072,-0.399C0.093,-0.437 0.122,-0.468 0.159,-0.489C0.196,-0.511 0.239,-0.522 0.287,-0.522C0.311,-0.522 0.333,-0.518 0.355,-0.511C0.377,-0.504 0.396,-0.493 0.413,-0.48C0.431,-0.466 0.445,-0.451 0.455,-0.433L0.456,-0.433L0.456,-0.73L0.571,-0.73L0.571,-0.261C0.571,-0.205 0.56,-0.156 0.537,-0.115C0.515,-0.074 0.484,-0.043 0.444,-0.021C0.405,0.001 0.358,0.012 0.306,0.012ZM0.306,-0.086C0.335,-0.086 0.361,-0.093 0.384,-0.107C0.406,-0.122 0.423,-0.141 0.436,-0.167C0.448,-0.192 0.455,-0.221 0.455,-0.255C0.455,-0.288 0.448,-0.317 0.436,-0.343C0.423,-0.368 0.406,-0.388 0.383,-0.402C0.361,-0.417 0.335,-0.424 0.305,-0.424C0.276,-0.424 0.251,-0.417 0.228,-0.402C0.206,-0.387 0.188,-0.368 0.175,-0.342C0.163,-0.317 0.156,-0.288 0.156,-0.255C0.156,-0.222 0.163,-0.193 0.175,-0.167C0.188,-0.142 0.206,-0.122 0.229,-0.108C0.251,-0.093 0.277,-0.086 0.306,-0.086Z"
|
||||||
|
style="fill:rgb(47,47,47);fill-rule:nonzero;" />
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(116.242,0,0,116.242,290.293,267.39)">
|
||||||
|
<path
|
||||||
|
d="M0.306,0.012C0.265,0.012 0.229,0.006 0.196,-0.008C0.163,-0.021 0.135,-0.039 0.112,-0.064C0.089,-0.088 0.071,-0.117 0.059,-0.151C0.046,-0.185 0.04,-0.222 0.04,-0.263C0.04,-0.315 0.051,-0.36 0.072,-0.399C0.093,-0.437 0.122,-0.468 0.159,-0.489C0.196,-0.511 0.239,-0.522 0.287,-0.522C0.311,-0.522 0.333,-0.518 0.355,-0.511C0.377,-0.504 0.396,-0.493 0.413,-0.48C0.431,-0.466 0.445,-0.451 0.455,-0.433L0.456,-0.433L0.456,-0.73L0.571,-0.73L0.571,-0.261C0.571,-0.205 0.56,-0.156 0.537,-0.115C0.515,-0.074 0.484,-0.043 0.444,-0.021C0.405,0.001 0.358,0.012 0.306,0.012ZM0.306,-0.086C0.335,-0.086 0.361,-0.093 0.384,-0.107C0.406,-0.122 0.423,-0.141 0.436,-0.167C0.448,-0.192 0.455,-0.221 0.455,-0.255C0.455,-0.288 0.448,-0.317 0.436,-0.343C0.423,-0.368 0.406,-0.388 0.383,-0.402C0.361,-0.417 0.335,-0.424 0.305,-0.424C0.276,-0.424 0.251,-0.417 0.228,-0.402C0.206,-0.387 0.188,-0.368 0.175,-0.342C0.163,-0.317 0.156,-0.288 0.156,-0.255C0.156,-0.222 0.163,-0.193 0.175,-0.167C0.188,-0.142 0.206,-0.122 0.229,-0.108C0.251,-0.093 0.277,-0.086 0.306,-0.086Z"
|
||||||
|
style="fill:rgb(47,47,47);fill-rule:nonzero;" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g id="c"
|
||||||
|
transform="matrix(-0.0716462,0.31304,-0.583685,-0.0384251,1489.76,-444.051)">
|
||||||
|
<path
|
||||||
|
d="M2668.11,700.4C2666.79,703.699 2666.12,707.216 2666.12,710.766C2666.12,726.268 2678.71,738.854 2694.21,738.854C2709.71,738.854 2722.3,726.268 2722.3,710.766C2722.3,704.111 2719.93,697.672 2715.63,692.597L2707.63,699.378C2710.33,702.559 2711.57,706.602 2711.81,710.766C2712.2,717.38 2706.61,724.52 2697.27,726.637C2683.9,728.581 2676.61,720.482 2676.61,710.766C2676.61,708.541 2677.03,706.336 2677.85,704.269L2668.11,700.4Z"
|
||||||
|
style="fill:rgb(46,46,46);" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g id="R" transform="matrix(0.497016,0,0,0.497016,2390.38,823.152)">
|
||||||
|
<g transform="matrix(1,0,0,1,-0.10786,0.450801)">
|
||||||
|
<g transform="matrix(12.1247,0,0,12.1247,3862.61,1929.9)">
|
||||||
|
<path
|
||||||
|
d="M0.073,-0L0.073,-0.7L0.383,-0.7C0.428,-0.7 0.469,-0.69 0.506,-0.67C0.543,-0.651 0.572,-0.623 0.594,-0.588C0.616,-0.553 0.627,-0.512 0.627,-0.465C0.627,-0.418 0.615,-0.377 0.592,-0.342C0.569,-0.306 0.539,-0.279 0.501,-0.259L0.57,-0.128C0.574,-0.12 0.579,-0.115 0.584,-0.111C0.59,-0.107 0.596,-0.106 0.605,-0.106L0.664,-0.106L0.664,-0L0.587,-0C0.56,-0 0.535,-0.007 0.514,-0.02C0.493,-0.034 0.476,-0.052 0.463,-0.075L0.381,-0.232C0.375,-0.231 0.368,-0.231 0.361,-0.231C0.354,-0.231 0.347,-0.231 0.34,-0.231L0.192,-0.231L0.192,-0L0.073,-0ZM0.192,-0.336L0.368,-0.336C0.394,-0.336 0.417,-0.341 0.438,-0.351C0.459,-0.361 0.476,-0.376 0.489,-0.396C0.501,-0.415 0.507,-0.438 0.507,-0.465C0.507,-0.492 0.501,-0.516 0.488,-0.535C0.475,-0.554 0.459,-0.569 0.438,-0.579C0.417,-0.59 0.394,-0.595 0.369,-0.595L0.192,-0.595L0.192,-0.336Z"
|
||||||
|
style="fill:rgb(46,46,46);fill-rule:nonzero;" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1,0,0,1,0.278569,0.101881)">
|
||||||
|
<circle cx="3866.43" cy="1926.14" r="8.923"
|
||||||
|
style="fill:none;stroke:rgb(46,46,46);stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<h1>
|
||||||
|
<!-- English --> <span class="lang">Congratulations!</span>
|
||||||
|
<!-- Japanese --> <span class="lang">おめでとう!</span>
|
||||||
|
<!-- Spanish --> <span class="lang">Felicidades!</span>
|
||||||
|
<!-- Chinese --> <span class="lang">恭喜!</span>
|
||||||
|
<!-- Hindi --> <span class="lang">बधाई हो!</span>
|
||||||
|
<!-- Russian --> <span class="lang">Поздравляю!</span>
|
||||||
|
<!-- Ukrainian --> <span class="lang">Вітаю!</span>
|
||||||
|
<span class="emoji">🎊</span>
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Your web server is working. Now make it work for you. 💪
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Caddy is ready to serve your site over HTTPS:
|
||||||
|
</p>
|
||||||
|
<ol>
|
||||||
|
<li>Point your domain's A/AAAA DNS records at this machine.</li>
|
||||||
|
<li>Upload your site's files to <code>/var/www/html</code>.
|
||||||
|
<li>
|
||||||
|
Edit your Caddyfile at <code>/etc/caddy/Caddyfile</code>:
|
||||||
|
<ol>
|
||||||
|
<li>Replace <code>:80</code> with your domain name</li>
|
||||||
|
<li>Change the site root to <code>/var/www/html</code></li>
|
||||||
|
</ol>
|
||||||
|
</li>
|
||||||
|
<li>Reload the configuration: <code>systemctl reload caddy</code></li>
|
||||||
|
<li>Visit your site!</li>
|
||||||
|
</ol>
|
||||||
|
<h2>If that worked 🥳</h2>
|
||||||
|
<p>
|
||||||
|
Awesome! You won't have to look at this slanted page anymore.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Remember, Caddy can do a lot more than serve static files. It's also a powerful reverse proxy and
|
||||||
|
application platform. You can use the Caddyfile to enable any other features you need. Or you could use
|
||||||
|
Caddy's API to configure it programmatically.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Everything you need to know is either in the <a href="https://caddyserver.com/docs/">📖 Caddy
|
||||||
|
documentation</a> or the manual for your OS/platform. Have fun!
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>If that didn't work 😶</h2>
|
||||||
|
<p>
|
||||||
|
It's okay, you can fix it! First check the following things:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>Service status: <code>systemctl status caddy</code></li>
|
||||||
|
<li>Logs: <code>journalctl --no-pager -u caddy</code></li>
|
||||||
|
<li>Are your site's files readable by the caddy user and group? <code>ls -la /var/www/html</code></li>
|
||||||
|
<li>Is the caddy home directory writeable? <code>ls -la /var/lib/caddy</code></li>
|
||||||
|
<li>Ensure your domain's A and/or AAAA records point to your machine's public IP address:
|
||||||
|
<code>dig example.com</code></li>
|
||||||
|
<li>Are your ports 80 and 443 externally reachable, and is Caddy able to bind to them? Check your
|
||||||
|
firewalls, port forwarding, and other network configuration.</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
<b class="warn">WAIT!</b> Before trying again, switch to <a
|
||||||
|
href="https://letsencrypt.org/docs/staging-environment/">Let's Encrypt's staging environment</a> to
|
||||||
|
avoid being accidentally <a href="https://letsencrypt.org/docs/rate-limits/">rate limited</a>. Once you
|
||||||
|
get everything else working, it's safe to switch back.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Depending on your DNS provider, it may take a while for the DNS records to propagate. Even when
|
||||||
|
everything is configured properly, automated challenges to obtain TLS certificates usually take several
|
||||||
|
seconds, but may take up to several minutes or hours.
|
||||||
|
<p>
|
||||||
|
If you still need help, we have a <a href="https://caddy.community/">great community</a>! First <a
|
||||||
|
href="https://caddy.community/search">try a search</a>, and if your question is original, go ahead
|
||||||
|
and ask it! Remember to pay it forward and help others too. 😁
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Visit Caddy on:
|
||||||
|
<b><a href="https://github.com/caddyserver/caddy" title="Caddy on GitHub">GitHub</a></b>
|
||||||
|
or
|
||||||
|
<b><a href="https://twitter.com/caddyserver" title="@caddyserver on Twitter">Twitter</a></b>
|
||||||
|
or
|
||||||
|
<b><a href="https://caddy.community/" title="Caddy forums">Our Forum</a></b>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<footer>
|
||||||
|
© Copyright The Caddy Authors
|
||||||
|
|
||||||
|
<div id="disclaimer">
|
||||||
|
The Caddy project is not responsible for the content, disposition, or behavior of this Web
|
||||||
|
property, which is independently owned and maintained. For inquiries, please contact the site owner or
|
||||||
|
hosting provider.
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
@ -4,3 +4,10 @@ if [ "${1}" = "-D" ]; then
|
|||||||
else
|
else
|
||||||
exec "$@"
|
exec "$@"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# first arg is `-f` or `--some-option`
|
||||||
|
#if [ "${1#-}" != "$1" ]; then
|
||||||
|
# set -- php-fpm "$@"
|
||||||
|
#fi
|
||||||
|
#
|
||||||
|
#exec "$@"
|
||||||
6
caddy-with-php/entrypoint.sh
Normal file
6
caddy-with-php/entrypoint.sh
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
# php-fpm daemonize
|
||||||
|
php-fpm -D
|
||||||
|
# start caddy
|
||||||
|
exec "$@"
|
||||||
@ -1,7 +1,7 @@
|
|||||||
FROM composer:latest as composer-build
|
FROM composer:latest as composer-build
|
||||||
|
|
||||||
FROM php:8.1-fpm-alpine3.17
|
FROM php:8.1-fpm-alpine3.17
|
||||||
MAINTAINER rainerosion "admin@rainss.cn"
|
LABEL maintainer="rainerosion <admin@rainss.cn>"
|
||||||
|
|
||||||
COPY --from=composer-build /usr/bin/composer /usr/bin/composer
|
COPY --from=composer-build /usr/bin/composer /usr/bin/composer
|
||||||
# build dependencies
|
# build dependencies
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
FROM --platform=$TARGETPLATFORM composer:latest as composer-build
|
FROM --platform=$TARGETPLATFORM composer:latest as composer-build
|
||||||
|
|
||||||
FROM --platform=$TARGETPLATFORM php:8.1-fpm-alpine3.17
|
FROM --platform=$TARGETPLATFORM php:8.1-fpm-alpine3.17
|
||||||
MAINTAINER rainerosion "admin@rainss.cn"
|
LABEL maintainer="rainerosion <admin@rainss.cn>"
|
||||||
|
|
||||||
COPY --from=composer-build /usr/bin/composer /usr/bin/composer
|
COPY --from=composer-build /usr/bin/composer /usr/bin/composer
|
||||||
# build dependencies
|
# build dependencies
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
FROM composer:latest as composer-build
|
FROM composer:latest as composer-build
|
||||||
|
|
||||||
FROM php:8.2-fpm-alpine3.19
|
FROM php:8.2-fpm-alpine3.19
|
||||||
MAINTAINER rainerosion "admin@rainss.cn"
|
LABEL maintainer="rainerosion <admin@rainss.cn>"
|
||||||
|
|
||||||
COPY --from=composer-build /usr/bin/composer /usr/bin/composer
|
COPY --from=composer-build /usr/bin/composer /usr/bin/composer
|
||||||
# build dependencies
|
# build dependencies
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
FROM --platform=$TARGETPLATFORM composer:latest as composer-build
|
FROM --platform=$TARGETPLATFORM composer:latest as composer-build
|
||||||
|
|
||||||
FROM --platform=$TARGETPLATFORM php:8.2-fpm-alpine3.19
|
FROM --platform=$TARGETPLATFORM php:8.2-fpm-alpine3.19
|
||||||
MAINTAINER rainerosion "admin@rainss.cn"
|
LABEL maintainer="rainerosion <admin@rainss.cn>"
|
||||||
|
|
||||||
COPY --from=composer-build /usr/bin/composer /usr/bin/composer
|
COPY --from=composer-build /usr/bin/composer /usr/bin/composer
|
||||||
# build dependencies
|
# build dependencies
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
FROM composer:latest as composer-build
|
FROM composer:latest as composer-build
|
||||||
|
|
||||||
FROM php:8.3-fpm-alpine3.19
|
FROM php:8.3-fpm-alpine3.19
|
||||||
MAINTAINER rainerosion "admin@rainss.cn"
|
LABEL maintainer="rainerosion <admin@rainss.cn>"
|
||||||
|
|
||||||
COPY --from=composer-build /usr/bin/composer /usr/bin/composer
|
COPY --from=composer-build /usr/bin/composer /usr/bin/composer
|
||||||
# build dependencies
|
# build dependencies
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
FROM --platform=$TARGETPLATFORM composer:latest as composer-build
|
FROM --platform=$TARGETPLATFORM composer:latest as composer-build
|
||||||
|
|
||||||
FROM --platform=$TARGETPLATFORM php:8.3-fpm-alpine3.19
|
FROM --platform=$TARGETPLATFORM php:8.3-fpm-alpine3.19
|
||||||
MAINTAINER rainerosion "admin@rainss.cn"
|
LABEL maintainer="rainerosion <admin@rainss.cn>"
|
||||||
|
|
||||||
COPY --from=composer-build /usr/bin/composer /usr/bin/composer
|
COPY --from=composer-build /usr/bin/composer /usr/bin/composer
|
||||||
# build dependencies
|
# build dependencies
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user