Болт CMS на Vagrant не разбирает PHP - PullRequest
0 голосов
/ 21 сентября 2019

Мой бродячий ящик не анализирует PHP-файлы для Bolt CMS.

Я разработчик уже много лет, работаю в Vagrant около 5 лет и никогда не сталкивался с серьезными проблемами.

Я хотел попробовать Bolt CMS, но когда я запускаю свой браузер с правильным URL-адресом (http://sallys.local:8000)), он всегда хочет загрузить индексный файл (или любой другой файл) вместо его анализа.

Мой vagrant-box обновлен до последней версии 8.10, я использую Nginx, но кажется, что Nginx не вызывается. Я активировал acces-log, и он не показывает записей. Для других моих проектов то же поле, это так.

Nginx-config для этого:

server {
    listen 80;
    listen 443 ssl;
    server_name sallys.local;
    root "/home/vagrant/sallys/public";

    index index.html index.htm index.php app.php;

    charset utf-8;

    location / {
        try_files $uri $uri/ /app.php?$query_string;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

#    access_log off;
    access_log  /var/log/nginx/sallys.local-ssl-acces.log;
    error_log  /var/log/nginx/sallys.local-ssl-error.log error;

    sendfile off;

    client_max_body_size 100m;

    # DEV
    location ~ ^/(app_dev|config)\.php(/|$) {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_intercept_errors off;
        fastcgi_buffer_size 16k;
        fastcgi_buffers 4 16k;
    }

    # PROD
    location ~ ^/app\.php(/|$) {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_intercept_errors off;
        fastcgi_buffer_size 16k;
        fastcgi_buffers 4 16k;
        # Prevents URIs that include the front controller. This will 404:
        # http://domain.tld/app.php/some-path
        # Remove the internal directive to allow URIs like this
        internal;
    }

    location ~ /\.ht {
        deny all;
    }

    ssl_certificate     /etc/nginx/ssl/sallys.local.crt;
    ssl_certificate_key /etc/nginx/ssl/sallys.local.key;
}

У меня есть похожая настройка для других моих проектов, и все они отвечают на порт 8000. И разбираю PHP-файлы правильно. Это, кажется, проблема noob. Но я не могу найти проблему здесь.

, когда я использую встроенный сервер, он работает. Так что должна быть проблемас Nginx.

У кого-нибудь есть идеи?

Спасибо

Тим

Ответы [ 2 ]

0 голосов
/ 22 сентября 2019

Спасибо, что указал мне, Гавейн.Я попробовал ваше решение, но оно не сработало.Я удалил записи в своем файле усадьбы, предоставил бродяги, и он работает ...

Создан новый конфиг:

server {
    listen 80;
    listen 443 ssl http2;
    server_name sallys.local;
    root "/home/vagrant/sallys/public";

    index index.html index.htm index.php;

    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    access_log off;
    error_log  /var/log/nginx/sallys.local-error.log error;

    sendfile off;

    client_max_body_size 100m;

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

        fastcgi_intercept_errors off;
        fastcgi_buffer_size 16k;
        fastcgi_buffers 4 16k;
        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300;
    }

    location ~ /\.ht {
        deny all;
    }

    ssl_certificate     /etc/nginx/ssl/sallys.local.crt;
    ssl_certificate_key /etc/nginx/ssl/sallys.local.key;
}
0 голосов
/ 22 сентября 2019

Похоже, что это конфигурация сайта Nginx для установки Symfony 2/3 (Symfony 4 проще FWIW), поэтому он не будет работать "из коробки", так сказать.

Я предполагаю, что location / {} будет ссылаться на app.php, и по умолчанию при установке Болта будет использоваться index.php в качестве индексного файла в webroot.

Существует страница конкретной документации в документации Bolt, которая описывает конфигурацию Nginx специально для установки Bolt, и я думаю, этого будет достаточно для вашего варианта использования.

...