Jump to content
php.lv forumi

analgins

Reģistrētie lietotāji
  • Posts

    33
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

analgins's Achievements

Newbie

Newbie (1/14)

  1. patiesībā, mana pati pirmā doma bija kaut kas līdzīgs rakstīšanai failā.. long story short, ir py skripts kas dara sekojošas lietas 1) vāc datus no sensoriem, raksta tos Round Robin Database iekšā šo visu, šis cikls atkārtojas ar minutes intervālu 2) lasa config.ini kurā no php es ievadu mainīgos un py skripts rīkojas atbilstoši un saslēdz vai atslēdz relejus mana problēma pirmajā momentā bija tāda ka nevarēju atrast normālu veidu kā ierakst'tit konkrētās vērtības vienā failā (vienā, jo man nepatīk bardaks ar failiem), līdz ar to radas doma to izpildīt dzīvajā.. Realitātē, tagad ir radies sava veida pārbaude sensoriem, jo esošais skripts, mēģinot nolasīt sensorus - ja tas izdodas viss ok, bet ja neizdodas nolasīt kādu no sensoriem, skripts tiek apturēts pavisam.. Tad tagad ir iespēja pa tiešo bez python skriptiem paskatīties vai visi sensori atbild un izvada vērtības, kas būtu pagrūti, ja tie tiktu lasīti failā Kā novērst šo nepilnību un turpināt python koda izpildi arī pēc tam kad kāds no sensoriem nav ticis nolasīts man ir aizdomdas.. ganjau safixēšu..
  2. Taisot sh skriptu, Tu biji domājis, ka to izpilda piemēram kā lietotājs pi un tad www-data novāc atgrieztos datus, pareizi sapratu ?
  3. BINGO! Dāmas un Kungi, liels paldies par atsaucību, problēma tika atrisināta! shell nomainiju atpakaļ uz orģinālo /usr/sbin/nologin /etc/sudoers izlaboju uz šādu www-data ALL=(ALL) NOPASSWD: /usr/bin/python, /var/www/Adafruit_Python_DHT/examples/AdafruitDHT.py www-data ALL=(ALL) NOPASSWD: /usr/bin/python, /var/www/Adafruit_Python_DHT/examples/AdafruitDHT.py www-data ALL=(ALL) NOPASSWD: /usr/bin/python, /var/www/Adafruit_Python_DHT/examples/AdafruitDHT.py www-data ALL=(ALL) NOPASSWD: /usr/bin/python, /var/www/Adafruit_Python_DHT/examples/AdafruitDHT.py visticamāk, uz konkrēto skriptu varēju arī nenorādīt, to vēl neesmu pārbaudījis.. tas ko man patreiz atgriež webs ir šāds, būs jāuzskaistina un jaiekļauj tur kur man to vajag.. exite code is: 0 array(1) { [0]=> string(26) "Temp=20.1* Humidity=40.1%" } Temp=20.1* Humidity=40.1% Array ( [0] => Temp=20.1* Humidity=40.1% ) rrwxrwxrwx
  4. ar komandu sudo chsh www-data nomainiju no /usr/sbin/nologin uz /bin/bash - reboots - izdruka no konsoles pi@raspberrypi:~ $ sudo -u www-data php /var/www/html/python.php [sudo] password for www-data: Sorry, user www-data is not allowed to execute '/usr/bin/python /var/www/Adafruit_Python_DHT/examples/AdafruitDHT.py 2302 12' as root on raspberrypi. exite code is: 1 array(0) { } Array ( ) <hr><hr>Python 2.7.9 rrwxrwxrwx to pašu pēctam izdarīju tik norādīju /usr/bin/python reboots un konsolē rāda to pašu... liekas ļoti interesanti ka tai pat laikā, lietotājs pi ar /bin/bash bez sudo var izpildīt šo pašu komandu un atgriež korektu saturu
  5. nu kamon.. tu tagad iesaki būvēt kosmosakuģi lai brauktu uz veikala pēc piena.. skaidrs kā diena, ka php kodā nav problēma, bet gan paša debiana premisijās, tāpēc www-data nevar izpildīt konkrēto skriptu.. Mēģināšu samainīt /sbin/nologin uz /sbin/bash redzēs ko tas dos
  6. nu kamon, tas jau vispār pēc kosmosa izklausās, prieškam mysql tur vēl darbināt ? man tos sensorus jānolasa vienu reizi kad ielādē admina paneli, lai redzētu aktuālos datus, tas arī viss.. bet tu te piedāvā būvēt kosmosa kuģi, lai aizbrauktu pēc piena.. noteikti problēma ir stulbi elementāra, kods jau pats par sevi strādā, jāatrod tik premisiju problēma, ne php, jo konsolē jau visu atgriež korekti.. Paies nedēļa, bet ganjau atkodīšu ko izdarīt, paldies visiem par atsaucību.
  7. passthru webā neko neparāda, bet konsolē gan.. Python 2.7.9 root@raspberrypi:/var/www/html# su www-data -c "python /var/www/Adafruit_Python_DHT/examples/AdafruitDHT.py 2302 12" This account is currently not available. root@raspberrypi:/var/www/html# sudo -u www-data python /var/www/Adafruit_Python_DHT/examples/AdafruitDHT.py 2302 12 Traceback (most recent call last): File "/var/www/Adafruit_Python_DHT/examples/AdafruitDHT.py", line 41, in <module> humidity, temperature = Adafruit_DHT.read_retry(sensor, pin) File "build/bdist.linux-armv7l/egg/Adafruit_DHT/common.py", line 90, in read_retry File "build/bdist.linux-armv7l/egg/Adafruit_DHT/common.py", line 76, in read File "build/bdist.linux-armv7l/egg/Adafruit_DHT/common.py", line 51, in get_platform File "build/bdist.linux-armv7l/egg/Adafruit_DHT/Raspberry_Pi_2.py", line 22, in <module> File "build/bdist.linux-armv7l/egg/Adafruit_DHT/Raspberry_Pi_2_Driver.py", line 7, in <module> File "build/bdist.linux-armv7l/egg/Adafruit_DHT/Raspberry_Pi_2_Driver.py", line 4, in __bootstrap__ File "/usr/local/lib/python2.7/dist-packages/setuptools-4.0.1-py2.7.egg/pkg_resources.py", line 950, in resource_filename File "/usr/local/lib/python2.7/dist-packages/setuptools-4.0.1-py2.7.egg/pkg_resources.py", line 1620, in get_resource_filename # usable with the zipimport directory cache for our target archive File "/usr/local/lib/python2.7/dist-packages/setuptools-4.0.1-py2.7.egg/pkg_resources.py", line 1650, in _extract_resource for name in eagers: File "/usr/local/lib/python2.7/dist-packages/setuptools-4.0.1-py2.7.egg/pkg_resources.py", line 1016, in get_cache_path target_path = os.path.join(extract_path, archive_name+'-tmp', *names) File "/usr/local/lib/python2.7/dist-packages/setuptools-4.0.1-py2.7.egg/pkg_resources.py", line 996, in extraction_error ) pkg_resources.ExtractionError: Can't extract file(s) to egg cache The following error occurred while trying to extract file(s) to the Python egg cache: [Errno 13] Permission denied: '/var/www/.python-eggs' The Python egg cache directory is currently set to: /var/www/.python-eggs Perhaps your account does not have write access to this directory? You can change the cache directory by setting the PYTHON_EGG_CACHE environment variable to point to an accessible directory. no /etc/passwd www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin uz ko vajadzētu mainīt nologin, bash ?
  8. pieliku www-data pie sudoers, bez izmaiņām www-data ALL=(ALL:ALL) NOPASSWD: /var/www/Adafruit_Python_DHT/examples pamēģināju uzlikt python skriptam chmod 777, ar php to arī nolasīju rwxrwxrwx, bet no weba joprojām atgriež errorcode 1 arī pamēģināju palaist komandu caur shell_exec ar password faili kā ir minēts augstāk minētajā linkā (zintis8789) Konsole atgriež visu korekti, webs neko.. rodas baigā sajūta, ka es te savā sulā kaut ko uz riņķi griežu un kaut ko ļoti svarīgu palaižu garām..
  9. izskatās ka ar pārinstalēšanu citā folderī (/var/www) arī neko nav devis, redzkur kods un ko tas man atgriež.. <?php $out = array(); $command = 'sudo python /var/www/Adafruit_Python_DHT/examples/AdafruitDHT.py 2302 12'; exec($command, $out, $exitCode); echo 'exite code is: ', $exitCode, PHP_EOL; var_dump($out); foreach($out as $outputStr) echo $outputStr . "\n"; ?> pi@raspberrypi:/var/www/html $ php python.php exite code is: 0 array(1) { [0]=> string(26) "Temp=19.8* Humidity=36.0%" } Temp=19.8* Humidity=36.0% webs atgriež tikai šo exite code is: 1 array(0) { } echo $out; izvada tikai - Array Vai tas joprojām nozīmē, ka apachim nav tiesības izpildīt šo python skriptu ?
  10. Tā nav vienīgā vieta, proti, no github novelk paciņu, atspiež un palaiž instalu, tur arī tad tas dzīvos un sasaistīs visas biblotēkas ar GPIO piniem un to funkcijām.. Kā jau teicu, paldies, rīt pačekošu kas sanāks, tad jau iepostēšu rezultātus..
  11. Tā ir instalācijas direktorija, pēc noklusējuma, ja pārvietošu skriptu / folderi, tad vairs nestrādās, ne tas ko tagad šeit apspriežam, ne arī mans python kods kas ģenerē RRD un vēl šo to..
  12. šo to jau lasījis esmu, tā jau nav ka tikai ar acīm pārbraucu pāri, bet ja konkrētā lieta neizraisa nekādu saprotamu loģiku, tad to infu vienkārši neuzsūcu.. exite code is: 1 NULL tas no weba, bet ko tas man dod ? forši jau ir, errors parādās, bet kāpēc ? pat zvaniņš nenoskan kāpēc :( Rīt pamurgošu, kā to kodu palaist bez root tiesībām, tad jau redzēsim vai tur tas suns aprakts.. Paldies par atsaucību!!
  13. hmm interesanti.. apachis strādā zem lietotāja www-data, raspbians ir pārkompilēts debians un tam apdeiti sistēmai nāk diezgan regulāri.. nolaboju kodu, pēc ielejas piemēra, verot vaļā webu, parādās tukša lapa, bet no konsoles izpildot php python.php man atgrieza vērtības korektas.. <?php $out = array(); $command = 'python /home/pi/Adafruit_Python_DHT/examples/AdafruitDHT.py 2302 12'; #$command = 'python /var/www/html/python.sh'; echo exec($command, $out, $status); foreach($out as $outputStr) echo $outputStr . "\n"; ?> <?php $out = array(); $command = 'python /home/pi/Adafruit_Python_DHT/examples/AdafruitDHT.py 2302 12'; echo exec($command, $out, $status); foreach($out as $outputStr) echo $outputStr . "\n"; ?> šāds bija izvads konsolē pi@raspberrypi:~ $ php /var/www/html/python.php Temp=19.8* Humidity=32.6%Temp=19.8* Humidity=32.6% iespējams ka arī www-data nav tiesības izpildīt to skriptu ar root tiesībām, par to nebiju aizdomājies..
  14. foreach($out as $outputStr) echo $outputStr; foreach un print_r atgriež neko.. ar var_dump atgriež šo - string(0) "" Vai šī nav gadījumā sarežģīta lieta, kurai es pieeju no nepareizās puses ?
  15. šo linku arī pa dienu biju izlasījis, vienīgais kas no tā mainījās, ir ka parādījās kaut kāds skaitlis kas neko neizsaka.. $command = '/home/pi/Adafruit_Python_DHT/examples/AdafruitDHT.py 2302 12'; exec($command, $out, $status); echo $out; echo $status; $out atgriež Array $statuss atgriež skaitli 126
×
×
  • Create New...