Назад | Перейти на главную страницу

Недействительный файл для загрузки, созданный пользователем PHP и www-data

У меня есть экземпляр amazon ec2 linux (ubuntu 18.04). Там я установил свой веб-сайт, который доступен Вот.

На веб-сайте у меня есть кнопка загрузки, которая запускает PHP, который генерирует некоторые файлы в /var/www/wondermap/html/tmp/ папку и отправьте их в заархивированном виде клиенту (который, в свою очередь, сохраняет все с помощью JavaScript).

Код работает с моей машины разработчика, но не на AWS.

Я попытался установить разрешение для папки tmp, чтобы мой пользователь (ubuntu) был владельцем, а у меня и группы www-data были разрешения rwx.

Я сделал это:

sudo chown -R ubuntu:www-data /var/www/wondermap/html/tmp
sudo find /var/www/wondermap/html/tmp -type d -exec chmod 775 {} \;
sudo find /var/www/wondermap/html/tmp -type f -exec chmod 664 {} \;

и контролировал, чтобы все соответствовало моей машине разработчика с ls -ld tmp/ и подтвердил это:

drwxrwxr-x 2 ubuntu www-data 4096 Jan  4 23:04 tmp/

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

Однако, когда я пытаюсь использовать функцию загрузки, все, что у меня есть, это загружаемый заархивированный файл, который недействителен, и если я открою его, я могу увидеть исходный код PHP.

Я подумал, что, возможно, мне не хватает некоторых разрешений в группе безопасности Amazon, но я застрял на этом этапе.

Я установил входящие правила для HTTP, HTTP и SSH и оставил исходящие правила пустыми. Кроме того, я могу подтвердить, что мой пользователь apache на aws - это www-data.

Делаю:

ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1

выходы www-data.

Если вы хотите увидеть код, я могу добавить его сюда без проблем, но он работает на моей машине разработчика, поэтому я предполагаю, что это проблема с разрешением.

РЕШЕНИЕ

Оказывается, PHP не был установлен на сервере ...

sudo apt install php libapache2-mod-php
sudo systemctl restart apache2