Так что моя работа с моим проектом требует такого рода способностей, я объединил laravel и ionic и вызвал папку ionic / www из laravel public, и это прекрасно работает, но мой проект на самом деле хочет напрямую преобразовать этот www в apk, который как онлайн 'appbuilder', поэтому я сделал маршрут, который выполняет ionic с помощью команды exec из php, я пытаюсь выполнить это ionic cordova build android, поэтому всякий раз, когда пользователь идет по этому маршруту, он напрямую генерирует и загружает apk, я прочитал вся тема stackoverflow связана с этой проблемой, но ничего не работает. Я знаю, что всякий раз, когда мы выполняем из exec (), shell_exec () и оператора backticks, пользователь, который фактически запускает это, является www-данными, и эти www-данные имеют много проблем с разрешением
Я получил ошибку ниже при попытке запустить Android Cordova build с помощью www-data:
с помощью этой команды: sudo -u www-data ionic cordova build android (почему я это сделал, потому что, если я запускаю из веб-браузера, появится сообщение об ошибке 504, что является плохой идеей, потому что я не вижу ошибки)
shell.js: internal error
Error: EPERM: operation not permitted, chmod '/var/www/html/instantapp-inovidea/public/mobileapps/helloworld/platforms/android/app/src/main/res/xml/config.xml'
at Object.chmodSync (fs.js:1023:3)
at copyFileSync (/var/www/html/instantapp-inovidea/public/mobileapps/helloworld/platforms/android/cordova/node_modules/shelljs/src/cp.js:41:6)
at /var/www/html/instantapp- inovidea/public/mobileapps/helloworld/platforms/android/cordova/node_modules/shelljs/src/cp.js:201:5
at Array.forEach (<anonymous>)
at Object._cp (/var/www/html/instantapp-inovidea/public/mobileapps/helloworld/platforms/android/cordova/node_modules/shelljs/src/cp.js:157:11)
at Object.cp (/var/www/html/instantapp-inovidea/public/mobileapps/helloworld/platforms/android/cordova/node_modules/shelljs/src/common.js:186:23)
at updateConfigFilesFrom (/var/www/html/instantapp-inovidea/public/mobileapps/helloworld/platforms/android/cordova/lib/prepare.js:98:11)
at Api.module.exports.prepare (/var/www/html/instantapp-inovidea/public/mobileapps/helloworld/platforms/android/cordova/lib/prepare.js:42:20)
at Api.prepare (/var/www/html/instantapp-inovidea/public/mobileapps/helloworld/platforms/android/cordova/Api.js:192:45)
at /usr/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/prepare.js:105:36
[ERROR] An error occurred while running subprocess cordova.
cordova build android exited with exit code 1.
Re-running this command with the --verbose flag may provide more information.
до того, как я получил вышеупомянутую ошибку, я изменил разрешение config.xml для платформ / android / app / src / res / xml на 777, но если изменить его обратно на 666, ошибка будет выглядеть так:
cp: copyFileSync: could not write to dest file (code=EACCES):/var/www/html/instantapp-inovidea/public/mobileapps/helloworld/platforms/android/app/src/main/res/xml/config.xml
EACCES: permission denied, open '/var/www/html/instantapp-inovidea/public/mobileapps/helloworld/platforms/android/app/src/main/res/xml/config.xml'
idk, какое разрешение дать www-data возможность выполнять эту команду ionic cordova, любая помощь будет великолепна, спасибо
ps: извините, если мой английский не очень хорош, я стараюсь изо всех сил объяснить все.