2016-06-08 8 views
5

हालांकि पथ /mnt/my-proj/app/../var/sessions/dev दोनों सामान्य उपयोगकर्ता और www के लिए सुलभ है -डेटा मुझे निम्न संदेश मिलता है:PHP7 + Symfony 3.1.0 + Vagrant: सत्र डेटा लिखने में विफल

Warning: session_write_close(): Failed to write session data (user). Please verify that the current setting of session.save_path is correct (/mnt/op-accounting2/app/../var/sessions/dev) 

मुझे केवल देव में उपरोक्त संदेश मिलता है, लेकिन प्रोड में नहीं। /mnt/my-proj/app/../var/sessions/dev और /mnt/my-proj/app/../var/sessions/prod ही pemissions है: 777 ।

# mount -t vboxsf -o uid=1000,gid=33,umask=000 my-proj /mnt/my-proj; 

क्या मैं गलत कर रहा हूँ:

पथ ऊपर निम्नलिखित के रूप में रखा जाता है?

मैं निम्न पदों पढ़ा है, लेकिन मेरे लिए कोई समाधान नहीं मिल सकता है:

PHP session handling errors

https://github.com/NewEraCracker/suhosin-patches/issues/3

PHP7 + Symfony 2.8, Failed to write session data

मैं Windows 8.1 पर Vagrant 1.8.1 का उपयोग कर रहा वाग्रेंट में एंटरप्राइस (64 बिट) और उबंटू-जेनियल 16.04। प्रदाता वर्चुअलबॉक्स 5.0.20 है। सेटिंग्स ज्यादातर डिफ़ॉल्ट हैं। उपरोक्त पथ पूर्ण पहुंच के साथ वर्चुअलबॉक्स जीयूआई का उपयोग करके साझा किया जाता है।

सधन्यवाद,

जूरी

उत्तर

3

हल हो! :-)

/mnt/my-proj/app/config/config.yml में

save_path: "/var/lib/php/sessions" 

स्थापना समस्या हल हो। /etc/php/7.0/ में इन-फाइल्स का कोई भी समायोजन निरंतर नहीं था (उन फ़ाइलों में अभी भी डिफ़ॉल्ट मान हैं)।

लेकिन मैं भटक गया कि मुझे प्रोड में त्रुटि संदेश क्यों नहीं मिला?

+0

आपने मुझे बचाया !!SF3 + PHP7 + Vagrant के साथ मुझे हो रहा है, शायद यह इस तथ्य से संबंधित है कि मेजबान के साथ '/ vagrant' साझा किया जाता है और होस्ट विंडो है। - ** नोट: ** बेशक यह डेवेल और प्रोडक्शन के बीच अलग है, इसलिए 'save_path' को' param_pave' 'पैरामीटर.आईएमएल' में 'session_save_path: "/ var/lib/php/session" जैसे पैरामीट्रज़ेबल चीज़ में जोड़ने पर विचार करें। 'session_save_path:"% kernel.root_dir%/../var/session /% kernel.environment% "क्रमशः डेवेल और उत्पादन पैरामीटर में और फिर' save_path: "% session_save_path%" 'config.yml' में उपयोग करें । –

+0

मुझे अभी भी कारण नहीं मिला है क्योंकि यह अनुमति देता है क्योंकि अनुमतियां 'var/session' पर भी अच्छी होती हैं। – Mantas

0

जूरी सिनीटसन के पिछले उत्तर के अलावा, इसने मुझे परियोजना आधार को बदलने के बजाय वीएम को ट्वीव करने का हल किया।

मेरी Vagrant बैश जड़ प्रावधानकर्ता को यह लाइन जोड़ना:

sed -i "s/www-data/vagrant/g" /etc/apache2/envvars 
service apache2 restart 

vagrant के रूप में अपाचे रन बनाता है। यह साझा निर्देशिका पर अपाचे को अधिक शक्ति प्रदान करता है क्योंकि यह फाइल सिस्टम में दिखाई देता है कि यह उपयोगकर्ता vagrant है और उपयोगकर्ता www-data नहीं है जो वहां छूने वाला होता है।

शायद यह 'एपर्मर' संबंधित है या नहीं।

संबंधित मुद्दे