python cgi

 ( drobert82 | 2018. április 13., péntek - 19:25 )

Sziasztok,

termux alatt próbálok beüzemelni apache2-t, és alatta python-t meg bash-t cgi-vel, mert legyen cgi.
Ha a python nem tartalmaz import-ot, akkor minden ok, de importokkal 500-as hiba jelenik meg a browserben.
Terminalból futattva nem jelenik meg semmilyen hiba.

Biztos a httpd.conf a hibás (gondolom), ötlet?

Üdv,
Róbert

httpd.conf

ServerRoot "/data/data/com.termux/files/usr"
Listen 8080
LoadModule mpm_prefork_module libexec/apache2/mod_mpm_prefork.so
LoadModule authn_file_module libexec/apache2/mod_authn_file.so
LoadModule authn_core_module libexec/apache2/mod_authn_core.so
LoadModule authz_host_module libexec/apache2/mod_authz_host.so
LoadModule authz_groupfile_module libexec/apache2/mod_authz_groupfile.so
LoadModule authz_user_module libexec/apache2/mod_authz_user.so
LoadModule authz_core_module libexec/apache2/mod_authz_core.so
LoadModule access_compat_module libexec/apache2/mod_access_compat.so
LoadModule auth_basic_module libexec/apache2/mod_auth_basic.so
LoadModule reqtimeout_module libexec/apache2/mod_reqtimeout.so
LoadModule include_module libexec/apache2/mod_include.so
LoadModule filter_module libexec/apache2/mod_filter.so
LoadModule mime_module libexec/apache2/mod_mime.so
LoadModule log_config_module libexec/apache2/mod_log_config.so
LoadModule env_module libexec/apache2/mod_env.so
LoadModule headers_module libexec/apache2/mod_headers.so
LoadModule setenvif_module libexec/apache2/mod_setenvif.so
LoadModule version_module libexec/apache2/mod_version.so
LoadModule slotmem_shm_module libexec/apache2/mod_slotmem_shm.so
LoadModule unixd_module libexec/apache2/mod_unixd.so
LoadModule status_module libexec/apache2/mod_status.so
LoadModule autoindex_module libexec/apache2/mod_autoindex.so
LoadModule cgi_module libexec/apache2/mod_cgi.so
LoadModule negotiation_module libexec/apache2/mod_negotiation.so
LoadModule dir_module libexec/apache2/mod_dir.so
LoadModule userdir_module libexec/apache2/mod_userdir.so
LoadModule alias_module libexec/apache2/mod_alias.so
LoadModule php7_module /data/data/com.termux/files/usr/libexec/apache2/libphp7.so

SetHandler application/x-httpd-php

DirectoryIndex index.php

ServerAdmin

ServerName localhost:8080

AllowOverride none
Require all denied

DocumentRoot "/data/data/com.termux/files/usr/share/apache2/default-site/htdocs"

Options Indexes FollowSymLinks
AllowOverride None
Require all granted
AddHandler cgi-script py
Order allow,deny
Allow from all

Options Indexes FollowSymLinks
AllowOverride None
Options +ExecCGI
Order allow,deny
AddHandler cgi-script .py
Allow from all

Options Indexes FollowSymLinks
AllowOverride None
Options +ExecCGI
Order allow,deny
AddHandler cgi-script .py .cgi
Allow from all

DirectoryIndex index.py index.html

Require all denied

ErrorLog "var/log/apache2/error_log"
LogLevel warn

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio

CustomLog "var/log/apache2/access_log" common

ScriptAlias /cgi-bin/ "/data/data/com.termux/files/usr/share/apache2/default-site/htdocs/cgi-bin/"

RequestHeader unset Proxy early

TypesConfig etc/apache2/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz

Include etc/apache2/extra/proxy-html.conf

SSLRandomSeed startup builtin
SSLRandomSeed connect builtin

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

nekem rengeeg pythonban irt cgi-m fut mindenfele, centos, ubi16, slackware is. nem hiszem hogy az apacs konfnak koze van hozza, de amugy nezz bele az error log-ba hogy milyen hibaval szallt el a cgi importtal. lehet egg cache-t nem tudja letrehozni a www-data/apache user homejaba, az a baj?

Ez androidon futna...

Jé, van kamu nicked is? Jó tudni :-)

Neked csak az van. Még neved sincs. Jellemző a söpredékre, hogy mindig más topikjába rondítotok bele.

Ejha, hirtelen en is sopredek lettem? Mert meg mertem kerdezni, egy smiley kiseretében, hogy honnan jott a plusz info? Azt is jo tudni. Bar szerintem inkább vegyél egy mély levegőt, és lazíts kicsit... Egyébként meg van nevem, nem is szoktam tikolni, egy guglinyira vagy tőle. Miért kéne itt nem a nickemen lenni? Mivel nevebb az hogy HZ, mint az, hogy kroozo?

Onnan jott a "plusz" info, hogy irta. Termuxrol volt szo, ami egy Androidos app+terminalemulator+csomagkezelo+egyeb. Mint az kozismert..

--
Any A.I. smart enough to pass a Turing test is smart enough to know to fail it. -Ian McDonald

Mint az közismert... Safranek, jöjjön közelebb! :D

Aha, akkor efölött àtsiklottam, elnézést.

Jóreggelt...

Nem, te egy smiley kíséretében, ostoba módon rágalmaztál. Nem szégyen a tudatlanságod, csak akkor ne ugass le másokat azzal, hogy te jobban tudod. :D

Ugyan le senkit nem ugattam, de mint említettem, elnézést, benéztem.

nincs joga importálni?
--
Gábriel Ákos

Valami ilyenre tippelnék, de a kérdező által vázolt környezetet nem tudtam összehozni, ìgy kipróbálni sem, hogy mi történt.

Milyen python van hozzá? Termuxos vagy valami külső?
És annyit kérhetnék, hogy a konfigot a pastebinre?
A hup lenyeli a < ... > karaktereket.

Küldök konfigot este.
És es bizony Androidon, termux saját csomagjaival, python 3.6, nincs rootolva, lineageos 14.1.
Leginkább Proof Of Concept akar lenni, hogy mit lehet még ebből kihozni.

Nekem Samsungom van, ami már a backupnak is itt-ott keresztbetesz (adb backup natürlich), szóval lehet, hogy az eltérések miatt még véletlenül sem fog összejönni nálam.

Szerintem a Termux mindenhol azonos csomagokat hasznal, es nem nyul ki a rendszer tobbi reszere. Szoval ha az egyiken megy, akkor a tobbin is.

Amugy sub. Engem is erdekelne a megoldas, jol johet a jovoben. Mondjuk Termuxban en lighttpd-t probaltam (mar nemtom mennyi sikerrel, meg az elozo telefonomon, reg volt).

--
Any A.I. smart enough to pass a Turing test is smart enough to know to fail it. -Ian McDonald

Hogy is van a mondás? "Láttam már karón varjút!" :)
A ferdeszeműekből én bármit kinézek, egyáltalán nem vagyok biztos benne, hogy a különböző API-kba nem buheráltak bele valamit, ami az eredeti, Google-féle változatban másképp működik. Meg hát a franc se tudja, hogy pl. a knox - bár nincs bekapcsolva - nem csinál-e valami disznóságot a háttérben.

Importokkal nálam semmi gond.
Pl.

import time

...
print(time.asctime())
...

szépen kirakja a pontos időt.
Látni kéne error.log-ot. Arra tippelnék, hogy kapsz valami warningot az importok közben, mielőtt kiküldené a
print("Content-type: text/html\n\n") -t.

AppArmor/SELinux nincs véletlen beállítva? (bocs, ha nagyon idióta kérdés, nem ismerem a termux-ot)

Minden import-ra hibát dob? A sys-t sem tudod beimportálni? Ha az menne, akkor kellene egy print(sys.prefix) kimenet.

Amúgy próbáld meg az Apache konfigban a SetEnv PYTHONPATH "/usr/..." beállítást - nem tudom, az Apache milyen lebutított beállításokkal fut.

Nem véletlenül van beállítva: androidon az alap. :)
Én bemásoltam a kérdező konfigját a saját mobilomra, nálam úgy általában működnek az importok.
Ebből arra tippelnék, hogy vagy valami olyat importál ami problémás vagy eleve a programjában van valami hiba. Végülis a hibaüzenet sem ismert, asszem...