yii 登录应用程序后出现内部服务器错误

oo7oh9g9  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(139)

我正在使用docker为我的yii 1应用程序。一切正常。但当我登录我的应用程序。我得到这个错误:

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at [no address given] to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.

Apache/2.4.53 (Debian) Server at localhost Port 8082

这是我的排版格式:

version: '3'
services:
  web:
    image: nguyenmanhluu/yii1:1.0
    container_name: dockeryiidisc
    ports:
      - "8082:80"
    build: 
      context: ..
      dockerfile: Dockerfile
      target: dev     
    volumes:
      - ./:/var/www/html       
    command: /bin/sh -c "service apache2 start && while sleep 1000; do :; done"

  db:
    container_name: dockeryiimysql
    image: mysql:latest
    volumes:
      - dockeryiimysql:/var/lib/mysql
    ports:
      - "3306:3306"
    environment:
      MYSQL_ALLOW_EMPTY_PASSWORD: 'true'
      MYSQL_DATABASE: sdi      

  phpmyadmin:  
    container_name: dockeryiipma
    image: phpmyadmin:latest
    environment:
      UPLOAD_LIMIT: 300M
      PMA_ARBITRARY: 1
      APACHE_HTTP_PORT_NUMBER: 8080
    ports:
      - 8080:8080
    command: /bin/bash -c "sed -i \"s/80/$$APACHE_HTTP_PORT_NUMBER/g\" /etc/apache2/sites-available/000-default.conf /etc/apache2/ports.conf && /docker-entrypoint.sh apache2-foreground"

volumes:
  dockeryiimysql: {}

和我文件000-默认.conf

<VirtualHost *:80>
    DocumentRoot /var/www/public

    <Directory /var/www>
            AllowOverride all
            Require all granted
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

和我的Docker文件:

FROM php:8.1-apache as dev

ENV DEBIAN_FRONTEND=noninteractive
ENV APP_ENV=development

WORKDIR /var/www/html

RUN apt-get update \
  && apt-get -y install --no-install-recommends apt-utils zip unzip nano ncdu 2>&1 \
    && apt-get -y install --no-install-recommends python graphviz 2>&1 \
  && apt-get -y install git iproute2 procps lsb-release \
  && apt-get install -y -qq software-properties-common \
  && apt-get install -y -qq wget git lynx ack-grep \
  && yes | pecl install xdebug \
  && echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)" > /usr/local/etc/php/conf.d/xdebug.ini \
    && apt-get -y install libicu-dev \
    && docker-php-ext-install intl pdo_mysql opcache \
    && pecl install apcu && docker-php-ext-enable apcu \
    && echo "apc.enable_cli=1" > /usr/local/etc/php/php.ini \
    && echo "apc.enable=1" > /usr/local/etc/php/php.ini \
  && echo "post_max_size = 100M" > /usr/local/etc/php/php.ini \
    && a2enmod rewrite \
  && apt-get autoremove -y \
  && apt-get clean -y \
  && rm -rf /var/lib/apt/lists/*

RUN apt-get update && apt-get install gnupg2 -y

RUN rm -rf /etc/apache2/sites-enabled \
    && ln -s /var/www/html/.devcontainer/sites-enabled /etc/apache2/sites-enabled

RUN echo 'alias ll="ls -la --color=auto"' >> ~/.bashrc && \
    echo "alias ack='ack-grep'" >> ~/.bashrc

RUN chown www-data:www-data -R ./

ENV DEBIAN_FRONTEND=dialog

我问题是:我必须改变什么
在哪里可以访问日志文件?
我有这个:

CONTAINER ID   IMAGE                    COMMAND                  CREATED          STATUS          PORTS                               NAMES
06276923b58b   mysql:latest             "docker-entrypoint.s…"   15 minutes ago   Up 15 minutes   0.0.0.0:3306->3306/tcp, 33060/tcp   dockeryiimysql
81055c285fdc   nguyenmanhluu/yii1:1.0   "docker-php-entrypoi…"   15 minutes ago   Up 15 minutes   0.0.0.0:8083->80/tcp                dockeryiidisc
eb7bd150d254   phpmyadmin:latest        "/docker-entrypoint.…"   15 minutes ago   Up 15 minutes   80/tcp, 0.0.0.0:8080->8080/tcp      dockeryiipma
PS C:\xampp\htdocs\webScraper> docker exec -it 81055c285fdc bash
root@81055c285fdc:/var/www/html#

我在文件main.php中使用了正确的主机作为容器名称:

'db'=> [
            'pdoClass' => 'NestedPDO',
            'connectionString' => 'mysql:host=dockeryiimysql;dbname=sdi',
            'emulatePrepare' => true,
            'username' => 'root',
            'password' => '',
            'charset' => 'utf8',
            'enableProfiling'=>true,
        ],

在phpmyadmin容器上我发现了这个:

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.21.0.3. Set the 'ServerName' directive globally to suppress this message
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.21.0.3. Set the 'ServerName' directive globally to suppress this message
[Mon May 23 07:06:13.275555 2022] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.53 (Debian) PHP/8.0.19 configured -- resuming normal operations
[Mon May 23 07:06:13.275613 2022] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND'
172.21.0.1 - - [23/May/2022:07:06:36 +0000] "GET /index.php?route=/&route=%2F HTTP/1.1" 200 6290 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36 OPR/86.0.4363.59"
172.21.0.1 - - [23/May/2022:07:06:40 +0000] "POST /index.php?route=/ HTTP/1.1" 302 1020 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36 OPR/86.0.4363.59"
172.21.0.1 - - [23/May/2022:07:06:40 +0000] "GET /index.php?route=/&route=%2F HTTP/1.1" 200 18402 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36 OPR/86.0.4363.59"
172.21.0.1 - - [23/May/2022:07:06:40 +0000] "POST /index.php?route=/config/get HTTP/1.1" 200 2471 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36 OPR/86.0.4363.59"
172.21.0.1 - - [23/May/2022:07:06:40 +0000] "POST /index.php?route=/navigation&ajax_request=1 HTTP/1.1" 200 3205 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36 OPR/86.0.4363.59"
172.21.0.1 - - [23/May/2022:07:06:40 +0000] "POST /index.php?route=/version-check HTTP/1.1" 200 1047 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36 OPR/86.0.4363.59"
172.21.0.1 - - [23/May/2022:07:06:40 +0000] "POST /index.php?route=/config/get HTTP/1.1" 200 2573 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36 OPR/86.0.4363.59"
172.21.0.1 - - [23/May/2022:07:06:40 +0000] "POST /index.php?route=/config/set HTTP/1.1" 200 2462 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36 OPR/86.0.4363.59"
172.21.0.1 - - [23/May/2022:07:06:42 +0000] "POST /index.php?route=/navigation&ajax_request=1 HTTP/1.1" 200 3897 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36 OPR/86.0.4363.59"
172.21.0.1 - - [23/May/2022:07:30:35 +0000] "POST /index.php?route=/ HTTP/1.1" 200 2458 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36 OPR/86.0.4363.59"
172.21.0.1 - - [23/May/2022:07:49:14 +0000] "POST /index.php?route=/ HTTP/1.1" 200 2466 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36 OPR/86.0.4363.59"
172.21.0.1 - - [23/May/2022:08:14:59 +0000] "POST /index.php?route=/ HTTP/1.1" 200 3027 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36 OPR/86.0.4363.59"
172.21.0.1 - - [23/May/2022:08:14:59 +0000] "GET /themes/pmahomme/img/s_error.png HTTP/1.1" 200 898 "http://localhost:8080/themes/pmahomme/css/theme.css?v=5.2.0" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36 OPR/86.0.4363.59"
yh2wf1be

yh2wf1be1#

您需要使用docker exec命令来获得对运行apache的web (dockeryiidisc)容器的shell访问权限。一旦进入该shell,您就可以查找apache日志文件。默认情况下,您可以在以下路径中找到Apache访问日志文件:/var/log/apache/access.log
Shell访问命令为:

docker exec -it -u 0 dockeryiidisc bash

这基本上将您的命令提示符绑定到名为dockeriidisc的容器中(根据您的compose yaml文件,您的apache容器)
-u 0为您提供容器的root访问权限。

相关问题