React Router с докером Apache2 + PHP7 + MariaDB

Я использую приложение Router for React. Когда я использую его с XAMPP и настраиваю файл .htaccess, маршрутизатор работает нормально. Это мой файл .htaccess:

<IfModule mod_rewrite.c>

  RewriteEngine on
  RewriteCond %{REQUEST_FILENAME} -f [OR]
  RewriteCond %{REQUEST_FILENAME} -d
  RewriteRule ^ - [L]
  RewriteRule ^ index.html [L]

</IfModule>

Затем я решаю создать докер для запуска моего приложения. Я использую образы php7.3.1-apache и mariadb. Это мой docker-compose.yml:

version: '3'
 services: 
  php-apache:
  build:
   context: ./php-apache
  ports:
   - 3000:80
  volumes:
   - ./dist:/var/www/html
  links:
   - 'mariadb'

  mariadb:
   image: mariadb:10.4.1
   volumes:
    - mariadb:/var/lib/mysql
   environment:
    TZ: "Asia/Bangkok"
    MYSQL_ALLOW_EMPTY_PASSWORD: "no"
    MYSQL_ROOT_PASSWORD: "root"
    MYSQL_USER: 'user'
    MYSQL_PASSWORD: 'user'
    MYSQL_DATABASE: 'db'
 volumes:
  mariadb:

После настройки я запускаю свое приложение и ввожу адрес http://localhost:3000/login. Это дает мне ошибку

The requested URL /login was not found on this server.

Он отлично работает на XAMPP, но не работает в докере.

Возможно mod_rewrite отсутствует? Включите его через RUN a2enmod rewrite в вашем Dockerfile. Также проверьте, установлен ли AllowOverride. В любом случае, зачем вам PHP и Мария для приложения React?

Tobias K. 28.01.2019 07:42

Я уже добавил это в Dockerfile.

Trí Phan 28.01.2019 07:47
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
2
95
0

Другие вопросы по теме