diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 0c01994..036e948 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,23 +1,23 @@ FROM alpine:3.21 -RUN apk add --no-cache git curl php83 php83-fpm php83-opcache caddy php83-curl php83-xdebug chromium-chromedriver +RUN apk add --no-cache git curl php84 php84-fpm php84-opcache caddy php84-curl php84-xdebug chromium-chromedriver ADD .devcontainer/start.sh /start.sh RUN chmod +x /start.sh -RUN apk add --no-cache php83-ctype php83-dom php83-fileinfo php83-gd php83-iconv php83-simplexml php83-xml php83-xmlreader php83-xmlwriter php83-zip php83-phar php83-openssl -RUN curl -sS https://getcomposer.org/installer | /usr/bin/php83 -- --install-dir=/usr/bin --filename=composer +RUN apk add --no-cache php84-ctype php84-dom php84-fileinfo php84-gd php84-iconv php84-simplexml php84-xml php84-xmlreader php84-xmlwriter php84-zip php84-phar php84-openssl +RUN curl -sS https://getcomposer.org/installer | /usr/bin/php84 -- --install-dir=/usr/bin --filename=composer # caddy stuff ADD .devcontainer/Caddyfile /etc/caddy/Caddyfile -RUN sed -i 's/nobody/caddy/g' /etc/php83/php-fpm.d/www.conf -RUN sed -i 's/E_ALL \& ~E_DEPRECATED \& ~E_STRICT/E_ALL \& ~E_DEPRECATED \& ~E_STRICT \& ~E_NOTICE \& ~E_WARNING/g' /etc/php83/php.ini +RUN sed -i 's/nobody/caddy/g' /etc/php84/php-fpm.d/www.conf +RUN sed -i 's/E_ALL \& ~E_DEPRECATED \& ~E_STRICT/E_ALL \& ~E_DEPRECATED \& ~E_STRICT \& ~E_NOTICE \& ~E_WARNING/g' /etc/php84/php.ini # configure xdebug -RUN echo "zend_extension=xdebug.so" > /etc/php83/conf.d/xdebug.ini -RUN echo "xdebug.mode=debug" >> /etc/php83/conf.d/xdebug.ini -RUN echo "xdebug.start_with_request=yes" >> /etc/php83/conf.d/xdebug.ini -RUN echo "xdebug.client_host=127.0.0.1" >> /etc/php83/conf.d/xdebug.ini -RUN echo "xdebug.client_port=9003" >> /etc/php83/conf.d/xdebug.ini -RUN echo "xdebug.idekey=VSCODE" >> /etc/php83/conf.d/xdebug.ini +RUN echo "zend_extension=xdebug.so" > /etc/php84/conf.d/xdebug.ini +RUN echo "xdebug.mode=debug" >> /etc/php84/conf.d/xdebug.ini +RUN echo "xdebug.start_with_request=yes" >> /etc/php84/conf.d/xdebug.ini +RUN echo "xdebug.client_host=127.0.0.1" >> /etc/php84/conf.d/xdebug.ini +RUN echo "xdebug.client_port=9003" >> /etc/php84/conf.d/xdebug.ini +RUN echo "xdebug.idekey=VSCODE" >> /etc/php84/conf.d/xdebug.ini diff --git a/docker-compose-dev.yml b/docker-compose-dev.yml new file mode 100644 index 0000000..7086de0 --- /dev/null +++ b/docker-compose-dev.yml @@ -0,0 +1,18 @@ +version: '3.3' +services: + http2pic: + build: + context: . + dockerfile: docker/Dockerfile + + restart: unless-stopped + volumes: + - ./cache:/srv/cache + - ./src:/srv/src + - ./web:/srv/web + - ./logs:/srv/logs + + environment: + - URL=http://localhost:8080 + ports: + - 8080:80 diff --git a/docker/Caddyfile b/docker/Caddyfile old mode 100644 new mode 100755 index b4b5002..cdd9be6 --- a/docker/Caddyfile +++ b/docker/Caddyfile @@ -3,5 +3,10 @@ php_fastcgi 127.0.0.1:9000 file_server + log { + output file /srv/logs/web.error.log + level ERROR + } + try_files {path} {path}/ /index.php?{query} } \ No newline at end of file diff --git a/docker/Dockerfile b/docker/Dockerfile old mode 100644 new mode 100755 index eab82b8..c4dc921 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,14 +1,16 @@ FROM alpine:3.21 # Install PHP and necessary extensions -RUN apk add --no-cache curl php83 php83-fpm php83-opcache caddy php83-curl php83-xdebug chromium-chromedriver +RUN apk add --no-cache curl php84 php84-fpm php84-opcache caddy php84-curl php84-xdebug chromium-chromedriver -RUN sed -i 's/nobody/caddy/g' /etc/php83/php-fpm.d/www.conf -RUN sed -i 's/E_ALL \& ~E_DEPRECATED \& ~E_STRICT/E_ALL \& ~E_DEPRECATED \& ~E_STRICT \& ~E_NOTICE \& ~E_WARNING/g' /etc/php83/php.ini +RUN sed -i 's/nobody/caddy/g' /etc/php84/php-fpm.d/www.conf +RUN sed -i 's/E_ALL \& ~E_DEPRECATED \& ~E_STRICT/E_ALL \& ~E_DEPRECATED \& ~E_STRICT \& ~E_NOTICE \& ~E_WARNING/g' /etc/php84/php.ini +# log php errors to /srv/logs/php_errors.log +RUN echo "error_log = /srv/logs/php_errors.log" >> /etc/php84/php.ini # Install additional PHP extensions -RUN apk add --no-cache php83-ctype php83-dom php83-fileinfo php83-gd php83-iconv php83-simplexml php83-xml php83-xmlreader php83-xmlwriter php83-zip php83-phar php83-openssl -RUN curl -sS https://getcomposer.org/installer | /usr/bin/php83 -- --install-dir=/usr/bin --filename=composer +RUN apk add --no-cache php84-ctype php84-dom php84-fileinfo php84-gd php84-iconv php84-simplexml php84-xml php84-xmlreader php84-xmlwriter php84-zip php84-phar php84-openssl +RUN curl -sS https://getcomposer.org/installer | /usr/bin/php84 -- --install-dir=/usr/bin --filename=composer ADD docker/start.sh /start.sh RUN chmod +x /start.sh diff --git a/docker/start.sh b/docker/start.sh old mode 100644 new mode 100755 index 5c28dbf..33b15a0 --- a/docker/start.sh +++ b/docker/start.sh @@ -1,6 +1,6 @@ echo ' [+] Starting php' -php-fpm83 +php-fpm84 cd /srv/src composer install diff --git a/logs/.gitignore b/logs/.gitignore old mode 100644 new mode 100755 diff --git a/web/index.php b/web/index.php index 73d0b41..56a8310 100644 --- a/web/index.php +++ b/web/index.php @@ -23,6 +23,12 @@ switch($url[0]) $target = substr($_SERVER['REQUEST_URI'],5); if(!$target || !filter_var($target, FILTER_VALIDATE_URL)) $target = $_REQUEST['url']; + if(!filter_var($target, FILTER_VALIDATE_URL)) + { + header('HTTP/1.0 400 Bad Request'); + echo 'Invalid URL'; + exit; + } $viewport = $_REQUEST['viewport']; $js = $_REQUEST['js']=='false'?false:true;