Как создать бэкенд для хранентя фото отправленных со смартфона?
Пишешь на java, пиши и бэкенд на java. Багаж знаний потребуется непостижимый. Создать http сервер, на каком-то порту и записывать данные в файл.
1) Язык - тот, что лично ты лучше знаешь. С вашим опытом я бы использовал на сервере Java. С моим опытом я бы использовал на сервере Go. Учить специально под backend язык PHP, если после нет целей заниматься обычной веб-разработкой - нет никакого смысла.
2) HTTP (для JSON API). СУБД (для хранения информации о пользователях и об именах файлов и о комментариях). Умение запустить backend в виде daemon для постоянной работы (тут вполне можно обойтись каким нибудь systemd)
3) MySQL вовсе не обязателен для этой задачи. Вообще не вижу преимуществ реляционной (к которым относится MySQL) СУБД под нее. Я бы обошелся примитивной key-value. Там изучать почти-то нечего. "Или туториалы где подобные бэкенды делаются." тут разве что что то вроде "как написать JSON API на языке X"