2017-01-29 5 views
0

Я хочу докерезировать ZendFramework2 Приложение с Nginx, Mysql и PHP7.Подавать докеры ZendFramework2 Применение с nginx

Когда я запустил docker-compose up, все контейнеры построены. Но когда я хочу получить доступ localhost:8080, я получаю страницу по умолчанию nginx, но default.conf был заменен моим site.conf. Перезапуск контейнера nginx ничего не изменил.

Поскольку это моя первая попытка в dockerizing Заявку я также хотел бы получить обратную связь на моем Докер-установки

Я последовал this учебник, но он не работает либо в своей простейшей форме.

Чтобы воспроизвести эту ситуацию, вы можете использовать мой Example Application.

Заранее спасибо за вашу помощь

докер-compose.yml

version: '2' 

services: 
    db: 
    image: mysql:5.7 
    restart: always 
    volumes: 
     - db_data:/var/lib/mysql 
    environment: 
     MYSQL_ROOT_PASSWORD: ferienhof 
     MYSQL_DATABASE: ferienhof 
     MYSQL_USER: ferienhof 
     MYSQL_PASSWORD: ferienhof 

    web: 
    depends_on: 
     - db 
    image: nginx:latest 
    ports: 
     - "8080:80" 
    volumes: 
     - ./src:/code 
     - ./resources/site.conf:/etc/nginx/conf.d/default.conf 
    links: 
     - php 
    php: 
    build: . 
    volumes: 
     - ./src:/code 
volumes: 
    db_data: 

Dockerfile для PHP

php.ini взяты из github

FROM php:7.1-fpm 

RUN apt-get update && apt-get install -y \ 
    git \ 
    cron \ 
    libfreetype6-dev \ 
    libicu-dev \ 
    libjpeg62-turbo-dev \ 
    libmcrypt-dev \ 
    libpng12-dev \ 
    libxslt1-dev 

# Configure the gd library 
RUN docker-php-ext-configure \ 
    gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ 

# Install required PHP extensions 
RUN docker-php-ext-install \ 
    gd \ 
    intl \ 
    mbstring \ 
    mcrypt \ 
    pdo_mysql \ 
    xsl \ 
    zip \ 
    soap 

# Install the 2.4 version of xdebug that's compatible with php7 
RUN pecl install -o -f xdebug-2.4.0 

COPY resources/php.ini /usr/local/etc/php/ 

    # Install composer and put binary into $PATH 
RUN curl -sS https://getcomposer.org/installer | php \ 
    && mv composer.phar /usr/local/bin/ \ 
    && ln -s /usr/local/bin/composer.phar /usr/local/bin/composer 

# Install phpunit and put binary into $PATH 
RUN curl -sSLo phpunit.phar https://phar.phpunit.de/phpunit-old.phar \ 
    && chmod 755 phpunit.phar \ 
    && mv phpunit.phar /usr/local/bin/ \ 
    && ln -s /usr/local/bin/phpunit.phar /usr/local/bin/phpunit 

# Install PHP Code sniffer 
RUN curl -OL https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar \ 
    && chmod 755 phpcs.phar \ 
    && mv phpcs.phar /usr/local/bin/ \ 
    && ln -s /usr/local/bin/phpcs.phar /usr/local/bin/phpcs \ 
    && curl -OL https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar \ 
    && chmod 755 phpcbf.phar \ 
    && mv phpcbf.phar /usr/local/bin/ \ 
    && ln -s /usr/local/bin/phpcbf.phar /usr/local/bin/phpcbf 

ресурсы/site.conf

server { 
    server_name php-docker.local; 
    error_log /var/log/nginx/error.log; 
    access_log /var/log/nginx/access.log; 
    listen  80; 
    root   /code/public; 

    location/{ 
     index index.php; 
     try_files $uri $uri/ @php; 
    } 

    location @php { 
     # Pass the PHP requests to FastCGI server (php-fpm) on 127.0.0.1:9000 
     fastcgi_pass php:9000; 
     fastcgi_param SCRIPT_FILENAME /code/public/index.php; 
     include fastcgi_params; 
    } 
} 
+0

признал, что мне нужно изменить fastcgi_pass на php: 9000, чтобы включить ссылку, но теперь nginx возвращает исходный php-файл. Похоже, что php-Container не обработал файл. – takethefake

ответ

0

Ваш Nginx конфигурации использует php-docker.local в server_name, но вы заходите на сайт с именем localhost.

Смежные вопросы