سؤال

أريد برنامج PHP الخاص بي لتتمكن من التحديث التلقائي. لهذا العمل، أحتاج PHP لتكون قادرا على الكتابة في الملفات الموجودة وغير الموجودة (إنشاء). هل ستعمل دائما إذا كنت فقط chmod الملفات المستهدفة لتكون 0777 ثم اكتبها؟ أو هل تحتاج عملية PHP / Apache / WTVR إلى أن تكون مالك الملف؟

في بعض الأحيان عند تحميل الأشخاص باستخدام حساب FTP، قد يختلف المالك عن عملية PHP، هل هذه مشكلة؟

تحرير: أنا بناء تطبيق PHP، لا أستطيع أن أعرف أي تكوينات سيتم تشغيل التطبيق، ولا يمكنني تعديل أي إعدادات ذات صلة الخادم. يمكنني أن أفعل ما يمكن أن تفعله PHP، مثل Chown ()، Chmod ().

هل كانت مفيدة؟

المحلول

لدي خادم واحد حيث، عند تحميل الملفات من خلال FTP، فإن ملكية ملفات الملفات على مستخدم FTP الذي تسبب في عدد قليل من مشاكل الأذن في الماضي.

نحن نستخدم المجموعات للحصول على جولة هذا

على سبيل المثال، يمكنك إنشاء مجموعة UserGroup للوصول إلى الملفات وإضافة Apache بالإضافة إلى كل مستخدمين من مستخدمي 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.App2.Appdaters، لا يزال بإمكان المستخدمين الآخرين الكتابة إلى الملف.

كما أقول، لا يبدو أنني بحاجة إلى ذلك على جميع الخوادم التي أستخدمها، لذلك أعتقد ما إذا كنت تفعل أو لا تعتمد على تكوين الخادم الخاص بك. إذا قررت استخدام المجموعات ثو، أجد أن هذا الرابط يأتي في متناول يدي في بعض الأحيان

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

نصائح أخرى

اجعل المجلد الذي تريد تحميله في امتلاكه بواسطة خادم الويب الخاص بك. ثم سيتمكن البرنامج النصي PHP الخاص بك من الكتابة في هذا المجلد إذا كان chmodded 755.

# chown www somefolder
# chmod 755 !$

(لا تجعل أشياء أخرى في ملفات الويب الخاصة بك مملوكة من قبل www).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top