Sign inSign up

nototar/php-apache-app

By nototar

•Updated 6 months ago

Image
0

1.7K

nototar/php-apache-app repository overview

Image PHP-Apache yang dioptimalkan untuk performa tinggi, keamanan, dan fleksibilitas arsitektur. Mendukung penuh Multi-Arch (AMD64 & ARM64), sangat cocok untuk dijalankan di server standar maupun infrastruktur berbasis ARM seperti AWS Graviton atau Raspberry Pi.

⁠✨ Fitur Utama
  • Multi-Platform: Satu tag untuk berbagai arsitektur (linux/amd64, linux/arm64).
  • Security First: Berjalan menggunakan user non-root (prod) untuk meminimalkan risiko keamanan.
  • Real IP Support: Terintegrasi dengan modul remoteip dan auto-fetch IP Cloudflare untuk mencatat IP asli pengunjung.
  • Production Optimized: Opcache aktif secara default dengan konfigurasi yang bisa diatur via ENV.
  • Multimedia Ready: Sudah terinstall FFmpeg dan Imagick.
⁠📦 Paket & Ekstensi Terinstall

Image ini dilengkapi dengan paket sistem dan ekstensi PHP lengkap:

  • System Utilities: ffmpeg, git, curl, zip, unzip, vim, poppler-utils (pdf to image), openssl, jq.
  • PHP Extensions:
    • Database: pdo_mysql, mysqli, pdo_pgsql, pgsql.
    • Graphics: gd (with FreeType & JPEG), imagick.
    • Services: ldap, memcached, mcrypt.
    • Core: intl, zip, gmp, bcmath, exif, gettext, opcache.
⁠🚀 Cara Menjalankan

Cukup jalankan perintah docker run berikut:

docker run -d --name app -e TZ=Asia/Jakarta -p 80:8080 nototar/php-apache-app:latest

Docker Compose

services:
  app:
    image: nototar/php-apache-app:8.4
    ports:
      - "80:8080"
    environment:
      - PHP_TIMEZONE=Asia/Jakarta
      - PHP_MEMORY_LIMIT=512M
      - PHP_DISPLAY_ERRORS=Off
⁠⚙️ Environment Variables

Kamu bisa menyesuaikan konfigurasi PHP & Apache tanpa perlu membuild ulang image:

VariabelDefaultDeskripsi
TZAsia/JakartaSet zona waktu sistem & PHP
PHP_TIMEZONEAsia/JakartaSet zona waktu PHP
PHP_MEMORY_LIMIT512MBatas memori PHP
PHP_UPLOAD_MAX_FILESIZE50MUkuran maskimal file upload
PHP_MAX_FILE_UPLOADS200Batas maksimal file upload
PHP_POST_MAX_SIZE100MUkuran maksimal file upload
PHP_DISPLAY_ERRORSOffMenampilkan error ke layar (On/Off)
PHP_DISPLAY_STARTUP_ERRORSOnMenampilkan error saat start up
PHP_ERROR_REPORTINGE_ALLE_ALL = Menampilkan semua error
PHP_MAX_EXECUTION_TIME60Batas waktu maksimal eksekusi PHP (dalam detik)
PHP_SESSION_MAXLIFETIME3600Batas maksimal sesi disimpan (dalam detik)
APACHE_DOCUMENT_ROOT/var/www/publicFolder root web (Laravel ready)
TRUSTED_PROXY_IP10.0.0.0/8IP Proxy internal yang digunakan
⁠🔒 Keamanan & Port

Demi keamanan, image ini tidak berjalan di port standar (80/443) karena menggunakan user non-root.

HTTP Port: 8080
HTTPS Port: 8443
User: prod
⁠🌐 Real IP (Cloudflare & Proxy)

Image ini secara otomatis akan mencoba mengambil daftar IP Cloudflare terbaru setiap kali container dijalankan. Jika berada di belakang HAProxy atau Nginx, pastikan proxy tersebut mengirimkan header X-Forwarded-For. Anda bisa mengubah ip proxy dengan menambahkannya di environment TRUSTED_PROXY_IP.

Tag summary

Content type

Image

Digest

sha256:52a92ce97…

Size

459.5 MB

Last updated

6 months ago

docker pull nototar/php-apache-app