2010-01-06 2 views
0

Я хочу, чтобы мое программное обеспечение PHP могло автоматически обновляться. Для этого мне нужно, чтобы PHP мог записывать в файлы как существующие, так и несуществующие (создавать). Будет ли он работать всегда, если я просто CHMOD целевых файлов будет 0777, а затем записывать в него? Или процесс PHP/Apache/wtvr должен быть владельцем файла?Вопросы PHP и CHMOD

Иногда, когда пользователи загружаются с использованием учетной записи FTP, владелец может отличаться от процесса PHP, это проблема?

Редактировать: Я создаю приложение PHP, я не могу знать, на каких конфигурациях приложение будет работать, и я не могу изменять настройки, связанные с сервером. Я могу делать то, что может делать PHP, например chown(), chmod().

ответ

2

У меня есть один сервер, где, когда файлы загружаются через FTP, право собственности на файл изменяется на пользователя ftp, что вызвало несколько проблем с разрешением в прошлом.

Мы используем группы, чтобы обойти эту

Например, вы можете создать в группу, для доступа к файлам и добавить апача плюс каждый из ваших FTP пользователей к группе:

usermod -a -G appUpdaters www 
usermod -a -G appUpdaters ftp1 
usermod -a -G appUpdaters ftp2 
etc... 

Тогда вы можете Чаун файл/папки для пользователя + группы и CHMOD 775

chown www.appUpdaters foldername 
chmod 775 foldername 

Таким образом, если изменения собственности на ftp1.appUpdaters или ftp2.appUpdaters, другие пользователи могут все еще записывайте в файл.

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

http://www.cyberciti.biz/faq/howto-linux-add-user-to-group/

+0

Я думаю, что есть проблема. Я не думаю, что могу создавать группы пользователей через PHP? Не нужен ли мне доступ к серверу? Я просто разработчик, написание программного обеспечения для нескольких платформ. – Tower

1

Сделайте папку, которую вы хотите загрузить, в собственность вашего www-сервера. Тогда ваш PHP скрипт будет иметь возможность писать в эту папку, если она chmodded 755.

# chown www somefolder 
# chmod 755 !$ 

(Не делайте другие вещи в ваших веб-файлов, находящихся в собственности WWW).

+0

Есть ли способ узнать пользователь WWW с помощью PHP? – Tower

+0

Создайте папку chmod 777, а затем создайте небольшой скрипт php для записи файла в этой папке, а затем ls -l и посмотрите владельца файла. Однако есть более простые способы. У вас есть root-доступ? – Gazzer