# Start from the base PHP 8.1 with Apache image
FROM php:8.1-apache

# Install dependencies and PHP extensions
RUN apt-get update && apt-get install -y --no-install-recommends \
    apt-transport-https \
    ca-certificates \
    wget \
    gnupg \
    unzip \
    vim \
    libpng-dev \
    libjpeg-dev \
    libfreetype6-dev \
    libonig-dev \
    libzip-dev \
    libxml2-dev \
    libcurl4-openssl-dev \
    libmariadb-dev \
    && rm -rf /var/lib/apt/lists/*

RUN docker-php-ext-configure gd --with-freetype --with-jpeg \
    && docker-php-ext-install gd mbstring zip xml pdo pdo_mysql curl mysqli


RUN cp /usr/local/etc/php/php.ini-production /usr/local/etc/php/php.ini && \
    sed -i "s/upload_max_filesize = .*/upload_max_filesize = 50M/" /usr/local/etc/php/php.ini && \
    sed -i "s/post_max_size = .*/post_max_size = 50M/" /usr/local/etc/php/php.ini && \
    sed -i "s/memory_limit = .*/memory_limit = 1024M/" /usr/local/etc/php/php.ini && \
    sed -i 's|^;error_log = .*|error_log = /var/logs/php_error.log|' /usr/local/etc/php/php.ini &&\
    sed -i 's/^\s*;\?\s*opcache\.enable\s*=.*/opcache.enable=0/' /usr/local/etc/php/php.ini &&\
    sed -i 's/^error_reporting = .*/error_reporting = E_ALL/' /usr/local/etc/php/php.ini

RUN a2enmod rewrite

COPY config_files/weebly.conf /etc/apache2/sites-available/weebly.conf

RUN a2ensite weebly.conf && \
    a2dissite 000-default.conf

# Set the working directory
WORKDIR /var/www/html/weebly

RUN mkdir -p /var/logs && \
    touch /var/logs/php_error.log && \
    chown www-data:www-data /var/logs/php_error.log && \
    chmod 644 /var/logs/php_error.log

# Copy application files
COPY . /var/www/html/weebly
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh

# Set correct ownership
RUN chown -R www-data:www-data /var/www/html/weebly
RUN chmod -R 775 /var/www/html/weebly

# Expose port 80
EXPOSE 80

# Start Apache
ENTRYPOINT ["/entrypoint.sh"]
CMD ["apache2-foreground"]