LXC/Alpine/Apache/PHP

From Chorke Wiki
Revision as of 08:41, 14 May 2025 by Shahed (talk | contribs)
Jump to navigation Jump to search

LXC » Alpine

lxc image ls images:alpine/3.21
lxc launch   images:alpine/3.21 apache

lxc delete   apache/alpine:3.21 2>/dev/null
lxc snapshot apache alpine:3.21
lxc restore  apache alpine:3.21
lxc info     apache

LXC » Alpine » Apache

lxc restore  apache alpine:3.21
lxc delete   apache/apache:2.4.62 2>/dev/null

cat <<'EXE'| lxc exec apache -- sh
apk update
apk upgrade
apk add apache2

rc-update add apache2
rc-service apache2 start
EXE

INET_PATH='.[].state.network.[].addresses[]|select(.family=="inet" and .scope=="global").address'
INET_ADDR=$(lxc list name=apache -f=yaml|yq  -r "${INET_PATH}")
xdg-open http://${INET_ADDR} &>/dev/null &
curl -fsSL ${INET_ADDR}

lxc snapshot apache apache:2.4.62
lxc restore  apache apache:2.4.62
lxc info     apache

LXC » Alpine » Apache » PHP

echo 'apk search php84'| lxc exec apache -- sh
lxc delete   apache/php:8.4.5 2>/dev/null
lxc restore  apache apache:2.4.62

cat <<'EXE'| lxc exec apache -- sh
apk update
apk upgrade
apk add php84
apk add php84-curl php84-apache2
apk add php84-mbstring php84-xml
apk add php84-mysqli php84-pgsql php84-intl

cat <<'PHP'| tee /var/www/localhost/htdocs/info.php >/dev/null
<?php
  phpinfo();
?>
PHP

rc-service apache2 restart
EXE

INET_PATH='.[].state.network.[].addresses[]|select(.family=="inet" and .scope=="global").address'
INET_ADDR=$(lxc list name=apache -f=yaml|yq  -r "${INET_PATH}")
xdg-open http://${INET_ADDR}/info.php &>/dev/null &

echo 'php84 -v'| lxc exec apache -- sh
INFO_PATH='//div/table[1]/tr/td/h1/text()'
curl -fsSL ${INET_ADDR}/info.php|xmllint --html --xpath "${INFO_PATH}" -

lxc snapshot apache/php:8.4.5
lxc restore  apache php:8.4.5
lxc info     apache

LXC » Alpine » Apache » PHP » FPM

echo 'apk search php84'| lxc exec apache -- sh
lxc delete   apache/php-fpm:8.4.5 2>/dev/null
lxc restore  apache apache:2.4.62

cat <<'EXE'| lxc exec apache -- sh
apk update
apk upgrade
apk add apache2-proxy
apk add php84 php84-curl
apk add php84-fpm php84-opcache
apk add php84-mbstring php84-xml
apk add php84-mysqli php84-pgsql php84-intl

sed 's|#LoadModule mpm_event_module modules/mod_mpm_event.so|\
LoadModule mpm_event_module modules/mod_mpm_event.so|' -i /etc/apache2/httpd.conf

sed 's|LoadModule mpm_prefork_module modules/mod_mpm_prefork.so|\
#LoadModule mpm_prefork_module modules/mod_mpm_prefork.so|' -i /etc/apache2/httpd.conf

cat <<'PHP'| tee /var/www/localhost/htdocs/info.php >/dev/null
<?php
  phpinfo();
?>
PHP

cat <<'CFG'| tee -a /etc/php84/php-fpm.conf >/dev/null
user = apache
group = apache
CFG

rc-update add php-fpm84
rc-service php-fpm84 start

cat <<'CFG'| tee -a /etc/apache2/httpd.conf >/dev/null
<FilesMatch \.php$>
    SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
CFG
rc-service apache2 restart
EXE

INET_PATH='.[].state.network.[].addresses[]|select(.family=="inet" and .scope=="global").address'
INET_ADDR=$(lxc list name=apache -f=yaml|yq  -r "${INET_PATH}")
xdg-open http://${INET_ADDR}/info.php &>/dev/null &

echo 'php84 -v'| lxc exec apache -- sh
INFO_PATH='//div/table[1]/tr/td/h1/text()'
curl -fsSL ${INET_ADDR}/info.php|xmllint --html --xpath "${INFO_PATH}" -

lxc snapshot apache/php-fpm:8.4.5
lxc restore  apache php-fpm:8.4.5
lxc info     apache

Playground

curl -fsSL ${INET_ADDR}/info.php| xmllint --format -
curl -fsSL ${INET_ADDR}/info.php| xmllint --html --xpath "//tr/td/h1/text()" -
curl -fsSL ${INET_ADDR}/info.php| xmllint --html --xpath "/html/body/div/table[1]/tr/td/h1/text()" -
apk cache clean
ls -ahl /var/cache/apk/
rm -vrf /var/cache/apk/*

References