Как изменить загрузку php с группой владельцев и пользователем - PullRequest
1 голос
/ 05 февраля 2020

Я столкнулся с проблемой php при загрузке папки или файлов на xampp apache сервера ubuntu:

Я создал указанную группу FTP и пользователя с папкой:

Группа: Пользователь = AB C: abc_user папка root группы = / htdocs / ABC / uploads

Поместить программу в папку:

/ htdocs / ABC / upload. php

И chown-ed:

sudo chown -R abc_user: AB C / htdocs / AB C

Основная программа будет загружать создаваемые подпапки и файлы в / uploads:

function create_folders($dir) {
    return is_dir($dir) or ( create_folders(dirname($dir)) and mkdir($dir));
}

move_uploaded_file($tmp_filename, $fileLocation)

Программа работает и может загружать папки и файлы :) .

Однако я нашел папки и файлы, они находятся в группе: user (1: 1).

1 Ответ

0 голосов
/ 05 февраля 2020

Я попробовал Google решения и запустил какой-то скрипт, чтобы выполнить самотестирование.

Добавил тест. php в папку и снова набрал:

echo exec("who");

chgrp($path,$group_name);
chown($path, $user_name);

Получил результат:

daemon
Warning: chgrp(): Operation not permitted in test.php

Warning: chown(): Operation not permitted in test.php

Array ( 
[name] => daemon 
[passwd] => x 
[uid] => 1 
[gid] => 1 
[gecos] => daemon 
[dir] => /usr/sbin 
[shell] => /usr/sbin/nologin 
) 

Я был смущен, почему это был 'демон' и группа: пользователь был 1: 1, а не моя группа: пользователь.

Так что я попробовал другим способом искать что-либо на стороне сервера, в части настройки xampp,

и обнаружил некоторые вещи в httpd.conf:

<IfModule unixd_module>
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.  
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User daemon
Group daemon
</IfModule>

Затем я попытался изменить группу: пользователь:

<IfModule unixd_module>
User abc_user
Group ABC
</IfModule>

Наконец, я снова загрузил и группа: пользователь под AB C: abc_user !!!!

Но ..... Была проблема, что XAMPP сказал, что не может сохранить сессию, если я использую сессию для некоторых программ: (....

<br />\n<b>Warning</b>:  session_start(): open(/opt/lampp/temp//sess_9k3dm9uv2gcgof1c37eacjlv36, O_RDWR) 
failed: Permission denied (13) in <b>/opt/lampp/htdocs/upload.php</b> on line <b>1</b><br />\n
<b>Warning</b>:  Unknown: open(/opt/lampp/temp//sess_9k3dm9uv2gcgof1c37eacjlv36, O_RDWR) 
failed: Permission denied (13) in <b>Unknown</b> on line <b>0</b><br />\n<br />\n
<b>Warning</b>:  Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/opt/lampp/temp/) in <b>Unknown</b> on line <b>0</b><br />\n

Звучит, мне нужно изменить путь temp к / htdocs / ABC / temp, тогда он должен работать, но выглядит странно.

У какого-нибудь таланта есть хорошая идея? :)

Спасибо и с уважением.

...