我正在尝试为Prestashop项目创建一个docker环境.我有它几乎工作,但由于某种原因,后台办公室无法访问 – 它给了我一个ERR_TOO_MANY_REDIRECTS错误.
我在shop_url表中更改了网址,并将PS_SHOP_DOMAIN和PS_SHOP_DOMAIN_SSL更改为无效.我尝试禁用友好的URL,启用/禁用SSL – 但问题仍然存在.
我正在为网络服务器使用自定义图像:
luken-wodby-nginx-prestashop Dockerfile:
FROM wodby/nginx:1.10
ENV WODBY_DIR_FILES /mnt/files
RUN rm /etc/gotpl/default-vhost.conf.tpl && \
mkdir -p $WODBY_DIR_FILES && \
mkdir -p /var/log/nginx
COPY prestashop.conf.tpl /etc/gotpl/
COPY init/* /docker-entrypoint-init.d/
泊坞窗,compose.yml:
version: "2"
services:
mariadb:
image: wodby/mariadb:10.1-2.0.0
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: organic
MYSQL_USER: prestashop
MYSQL_PASSWORD: prestashop
volumes:
- ./database:/docker-entrypoint-initdb.d
ports:
- "33060:3306"
php:
image: wodby/php:5.6-2.0.0
environment:
PHP_SENDMAIL_PATH: /usr/sbin/sendmail -t -i -S mailhog:1025
PHP_XDEBUG: 1
PHP_XDEBUG_DEFAULT_ENABLE: 1
volumes:
- ./:/var/www/html
nginx:
image: luken-wodby-nginx-prestashop:latest
depends_on:
- php
environment:
NGINX_BACKEND_HOST: php
NGINX_SERVER_NAME: prestashop.docker.localhost
NGINX_SERVER_ROOT: /var/www/html/public_html
volumes:
- ./:/var/www/html
ports:
- "8000:80"
mailhog:
image: mailhog/mailhog
ports:
- "8002:8025"
Nginx虚拟主机配置:
server {
listen 80;
server_name {{ getenv "NGINX_SERVER_NAME" "prestashop" }};
root {{ getenv "NGINX_SERVER_ROOT" "/var/www/html/" }};
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
index index.php index.html;
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
auth_basic off;
allow all;
log_not_found off;
access_log off;
}
# Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac).
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 1;
gzip_buffers 16 8k;
gzip_http_version 1.0;
gzip_types application/json text/css application/javascript;
rewrite ^/api/?(.*)$/webservice/dispatcher.php?url=$1 last;
rewrite ^/([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$/img/p/$1/$1$2$3.jpg last;
rewrite ^/([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$/img/p/$1/$2/$1$2$3$4.jpg last;
rewrite ^/([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$/img/p/$1/$2/$3/$1$2$3$4$5.jpg last;
rewrite ^/([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$/img/p/$1/$2/$3/$4/$1$2$3$4$5$6.jpg last;
rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$/img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6$7.jpg last;
rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$/img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7$8.jpg last;
rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$/img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8$9.jpg last;
rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$/img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9$10.jpg last;
rewrite ^/c/([0-9]+)(-[.*_a-zA-Z0-9-]*)(-[0-9]+)?/.+.jpg$/img/c/$1$2$3.jpg last;
rewrite ^/c/([a-zA-Z_-]+)(-[0-9]+)?/.+.jpg$/img/c/$1$2.jpg last;
rewrite ^/images_ie/?([^/]+).(jpe?g|png|gif)$/js/jquery/plugins/fancybox/images/$1.$2 last;
rewrite ^/order$/index.php?controller=order last;
location /panel_adm/ { #Change this to your admin folder
if (!-e $request_filename) {
rewrite ^/.*$/panel_adm/index.php last; #Change this to your admin folder
}
}
location / {
if (!-e $request_filename) {
rewrite ^/.*$/index.php last;
}
}
location ~ .php${
fastcgi_split_path_info ^(.+.php)(/.*)$;
try_files $uri =404;
fastcgi_keep_conn on;
include /etc/nginx/fastcgi_params;
fastcgi_pass backend; #Change this to your PHP-FPM location
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
网站工作正常,只有后台办公室无法访问,并给出ERR_TOO_MANY_REDIRECTS错误.
什么想法可能是错的?
最佳答案 据我所知,在安装时,Prestashop需要具有完整的文件夹权限,而它会导致一些问题.
例如:
chmod 777 -R /var/www/html
应该做的工作