דחוף: קובץ PHP שעובד רק בשורת פקודה ולא בדפדפן
-
יש לי סקריפט PHP שורה אחת
<?php echo filesize("/mnt/data/bucket/welcome.wav");
בשורת פקודה מחזיר את גודל הקובץ, אבל בדפדפן מחזיר שגיאה
Warning: filesize(): stat failed for /mnt/data/bucket//welcome.wav in /var/www/html/bt.php on line 2
יצויין שהקובץ לא קיים ממש על הכונן, אלא העלתי אותו בתיקייה עם s3fs (bucket של scaleway)
ממש דחוף, אודה למי שיש לו רעיון לעזור.תודה רבה
-
שכחתי לרשום שיש לו אותן הרשאות בדיוק כשאר הקבצים
דהיינו, הקובץ הזה נמצא גם בתיקייה רגילה, ועל הקובץ הזה אני כן רואה בדפדפן את הגודל שלו
ולשני הקבצים יש בדיוק את אותם הרשאות, אותו יוזר, הכל. -
@שואף אמר בדחוף: קובץ PHP שעובד רק בשורת פקודה ולא בדפדפן:
ולשני הקבצים יש בדיוק את אותם הרשאות, אותו יוזר, הכל.
אבל הם במערכת קבצים שונה.
תריץ את הסקריפט מהטרמינל כמשתמש
www-data
או איך שקוראים למשתמש של שרת הוובsu www-data php script.php
@yossiz אמר בדחוף: קובץ PHP שעובד רק בשורת פקודה ולא בדפדפן:
אבל הם במערכת קבצים שונה.
יותר מזה. מן הסתם s3fs לא תומך בכלל בהרשאות יוניקס רגילות. זה לא מערכת קבצים אמיתי אלא מדמה מערכת קבצים.
מן הסתם יש קובץ קונפיגרציה (או פרמטר לפקודת ה-mount) להגדיר את ההרשאות של הקבצים -
-
@yossiz תודה!! אכן זו היתה הבעייה, עשיתי מה שכתוב בgithub, שבהעלאה הבקט יש להוסיף allow_other ועכשיו הPHP קורא אותו.
יש בעייה אחרת שאני לא יודע אם יש לה פיתרון. את הקבצים אני צריך בשביל השמעה במערכת טלפונית, ורציתי להפריד את הקבצי השמעה מהלוגיקה של השרת כך יהיה אפשר לעשות בלאנס לעמוד בעומס שיחות.
הבעייה היא שלוקח כ12 שניות לכל קובץ להתחיל.. כנראה שהאסטריסק קורא לקובץ וטוען אותו או משהו כזה, וזה לוקח זמן.
כך שהפיתרון הזה לא רלוונטי. -
@yossiz תודה!! אכן זו היתה הבעייה, עשיתי מה שכתוב בgithub, שבהעלאה הבקט יש להוסיף allow_other ועכשיו הPHP קורא אותו.
יש בעייה אחרת שאני לא יודע אם יש לה פיתרון. את הקבצים אני צריך בשביל השמעה במערכת טלפונית, ורציתי להפריד את הקבצי השמעה מהלוגיקה של השרת כך יהיה אפשר לעשות בלאנס לעמוד בעומס שיחות.
הבעייה היא שלוקח כ12 שניות לכל קובץ להתחיל.. כנראה שהאסטריסק קורא לקובץ וטוען אותו או משהו כזה, וזה לוקח זמן.
כך שהפיתרון הזה לא רלוונטי.