2013-05-22 6 views
5

पर रॉ कुर्सियां ​​यह काफी एकPHP और linux

sudo setcap cap_net_raw=eip /usr/bin/php5 

पीएचपी (नहीं CLI) लिनुक्स में रॉ कुर्सियां ​​उपयोग करने के लिए सक्षम होने के लिए क्या करना है?

यदि हाँ, अच्छी तरह से यह काम कर रहा है (लेकिन CLI में काम करने के लिए शुरू किया, लेकिन अपाचे का उपयोग नहीं)

तो मैं मैं अपाचे के लिए उन अनुमतियों के साथ-देना है लगता है, लेकिन मैं बाहर नहीं मिल सका कैसे ।

क्या आप मेरी मदद कर सकते हैं? PHP स्क्रिप्ट से

त्रुटियों: Warning: socket_create(): Unable to create socket [1]: Operation not permitted in

PHP स्क्रिप्ट:

$package = "\x08\x00\x7d\x4b\x00\x00\x00\x00PingHost"; 
     $socket = socket_create(AF_INET, SOCK_RAW, 1); 
     if ($socket !== false) { 
      socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array('sec' => 10, 'usec' => 0)); 
      echo 'Creating PING Socket !'; 

      socket_connect($socket, gethostbyname('noczone.com'), null); 
      socket_send($socket, $package, strLen($package), 0); 
      if (socket_read($socket, 255)) { 
       $result = microtime(true) - $ts; 
      } else { 
       echo 'Error Code : No PING'; 
      } 
      socket_close($socket); 
     } else { 
      echo 'Failed Creating PING Socket !'; 
     } 
+0

सबसे पहले, आपको यह सुनिश्चित करना होगा कि आपके PHP को सॉकेट के साथ संकलित किया गया है http://www.php.net/manual/en/sockets.installation.php यदि यह बहुत अच्छा रहा है। आपको क्या त्रुटियां मिलती हैं? सुनिश्चित करें कि आप त्रुटि रिपोर्टिंग चालू करें: display_errors ('चालू'); ini_set ('error_reporting', 'E_ALL'); और फिर स्क्रिप्ट दोबारा शुरू करें। क्या आप अपने प्रश्न को त्रुटियों के साथ अपडेट कर सकते हैं? – DarkMantis

+0

'चेतावनी: socket_create(): सॉकेट बनाने में असमर्थ [1]: –

+0

में ऑपरेशन की अनुमति नहीं है क्या आपके पास php.ini में कोई फ़ंक्शन अक्षम है, यह भी सुरक्षित_मोड है? – DarkMantis

उत्तर

2

(आप php_sapi_name से देख सकते हैं सबसे अधिक संभावना पीएचपी दुभाषिया अपाचे में एक मॉड्यूल के रूप कार्यान्वित किया जाता है() या PHP_SAPI PHP में स्थिर, या httpd ini फ़ाइल से)।

इस मामले में आपको httpd निष्पादन योग्य क्षमता देने की आवश्यकता है।

+0

यह मुझे 'apache2handler' नहीं मिला –

3

क्या आपने कोशिश की है: sudo setcap cap_net_raw=eip $(which httpd)?

आपको क्या त्रुटि मिल रही है?

+0

'रूट @ exclulist:/usr/sbin # sudo setcap cap_net_raw = eip $ (जो httpd) उपयोग: setcap [-q] [-v] (- आर | - | ) [... (-आर | - | ) ] नोट एक नियमित (गैर-सिम्लिंक) फ़ाइल होना चाहिए। रूट @ exclulist:/usr/sbin # sudo setcap cap_net_raw = eip $ (जो apache2) फ़ाइल '/ usr/sbin/apache2' (अमान्य तर्क) पर क्षमताओं को सेट करने में विफल क्षमता तर्क के मान की अनुमति नहीं है एक पंक्ति। या फ़ाइल एक नियमित (गैर-सिम्लिंक) फ़ाइल नहीं है ' –

+0

setcap cap_net_bind_service = + ep/usr/sbin/httpd आप फिर से क्या करने का प्रयास कर रहे हैं? –

+0

yup ने कोशिश की, काम नहीं कर रहा है। –

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