GCP PHP переместить загруженный файл не работает

#php #apache #google-cloud-platform #virtual-machine

#php #apache #google-облачная платформа #виртуальная машина

Вопрос:

Я использовал экземпляр виртуальной машины на GCP с CentOS v7. Он должен быть простым в использовании move_uploaded_file , но я получил отказ в разрешении

 [Mon Mar 11 11:47:57.298785 2019] [php7:warn] [pid 22024] [client ***] PHP Warning:  move_uploaded_file(/var/www/html/web-apps/images/menu/19692265_b8533716-e201-49fe-916e-ae993c89fffb_500_500.jpg): failed to open stream: Permission denied in /var/www/html/web-apps/back_end/editMenu.php on line 21, referer: http://***/web-apps/pages/activity/editMenu.php?id=18
[Mon Mar 11 11:47:57.298834 2019] [php7:warn] [pid 22024] [client ***] PHP Warning:  move_uploaded_file(): Unable to move '/tmp/php79PbIY' to '/var/www/html/web-apps/images/menu/19692265_b8533716-e201-49fe-916e-ae993c89fffb_500_500.jpg' in /var/www/html/web-apps/back_end/editMenu.php on line 21, referer: http://***/web-apps/pages/activity/editMenu.php?id=18
  

Я пытаюсь

  1. chown -R apache: веб-приложения apache/
  2. chmod -R 755 web-apps

вот ls -l

 drwxr-xr-x.  3 apache apache    188 Mar 11 09:18 images
  

ps -aux | grep httpd для PID 22024

 apache   22024  0.0  0.3 611668 14348 ?        S    10:23   0:00 /usr/sbin/httpd -DFOREGROUND
  

Запуск этого сценария ниже

 <?php echo exec('whoami'); ?>
  

и результат apache

/tmp папка

 drwxrwxrwt.  13 apache apache 4096 Mar 11 11:56 tmp
  

Что я здесь пропустил? Возможно ли, что это связано с политикой безопасности, которая работает на GCP?

Комментарии:

1. Я думаю, вам следует предоставить право собственности на www-data свой каталог с разрешением на запись,

2. @harishsharma www-data не для centOs среды

Ответ №1:

После долгих размышлений проблема возникает из SELinux.

в CentOS 6 выше должен быть SELinux, позволяющий принудительно

 setenforce Permissive
  

проверьте статус

 sestatus
  

обратитесь к https://wiki.centos.org/HowTos/SELinux