Apache mod_cgi ayarları ile ilgili sorun

Başlatan martinamca, 14 Mart 2010 - 03:34:42

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

martinamca

Python ile (deneme.py) yazdığım bir dosyayı sunucuda gözükmesi için .cgi uzantısı ile kaydettim (deneme.cgi). Bilgisayarımdaki apache sunucusundan da dosyaya ulaşmaya çalıştım. Dosyalara ulaşmaya çalıştığımda aldığım

Alıntı YapForbidden
You don't have permission to access /~mehmet/pyt_dene/ilk_sayfa.cgi on this server.
uyarı mesajından sonra dosyalara

chmod 777 deneme.cgi

komutunu verdim. Sunucuyu yeniden başlattım. Sonra /home/user/public_html/ altında .htaccess dosyası oluşturup mod_cgi için gerekli izinleri verdim.

AddHandler cgi-script .cgi
AddHandler cgi-script .py


Sunucu hala aynı hatayı veriyor. Bu işlemlerdeki hata nerede?
Teşekkürler.

cihan-tristit

apache confunuzdaki ilgili alanı buraya yazın, inceleyelim.

Aşağıdaki gibi bir configurasyon eklediniz mi?

LoadModule python_module modules/mod_python.so

<Directory /home/mehmet/pyt_dene/>
  Options Indexes FollowSymLinks MultiViews
  AllowOverride None
  Order allow,deny
  allow from all
  AddHandler mod_python .py
  PythonHandler mod_python.publisher
  PythonDebug On
</Directory>

martinamca

Tam olarak durumua hakim değilim de, apache2 confundaki ayarlar httpd.conf dosyası içerisinde mi tutuluyor? Eğer öyleyse python ile ilgili modüller eklenmemiş ve dosyanın içeriği buraya eklenemeyecek kadar uzun ve ben neresini buraya koymam gerektiğini bilemiyorum. İçerisinde şu şekilde mod_[vs.vs.] şeklinde modüller var.
# These Modules provide URL mappings or translations.
LoadModule alias_module                  modules/mod_alias.so
LoadModule rewrite_module                modules/mod_rewrite.so
<IfDefine USERDIR>
    LoadModule userdir_module            modules/mod_userdir.so
</IfDefine>


#
# Handlers
#
# These modules create content for a client.
#
<IfDefine INFO>
    LoadModule info_module               modules/mod_info.so
    LoadModule status_module             modules/mod_status.so
</IfDefine>
LoadModule actions_module                modules/mod_actions.so
LoadModule autoindex_module              modules/mod_autoindex.so
LoadModule dir_module                    modules/mod_dir.so

#
# Filters
#
# These modules provide filters for Apache.
# They preform common tasks like gzip encoding or SSI
#
#
LoadModule ext_filter_module             modules/mod_ext_filter.so
LoadModule deflate_module                modules/mod_deflate.so
LoadModule include_module                modules/mod_include.so


Sizin bir önce mesajda yazdığınız bu ayarları /etc/apache2/httpd.conf dosyasına eklesem sorun çözülür mü?

martinamca

Dosyayı biraz daha inceleyince aşağıdaki satırları gördüm. En alttaki kırmızı ile işaretlediğim satırların önünceki yorum işaretlerini kaldırsam bir sonuç elde edebilir miyim?

#<Directory /home/*/public_html/cgi-bin>
#    Options ExecCGI
#    SetHandler cgi-script
#</Directory>


Bir de bu konuyu anlatan, ama apache manual'ından daha kısa ve öz bir kaynak var mı bildiğiniz, İngilizce veya Türkçe?

<IfModule mod_userdir.c>
    UserDir public_html

#
# Control access to UserDir directories.  The following is an example
# for a site where these directories are restricted to read-only.
#
    <Directory /home/*/public_html>
        AllowOverride FileInfo AuthConfig Limit Indexes
        Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
        <Limit GET POST OPTIONS PROPFIND>
            Order allow,deny
            Allow from all
       </Limit>
       <LimitExcept GET POST OPTIONS PROPFIND>
            Order deny,allow
            Deny from all
       </LimitExcept>
    </Directory>


# Enable this additional section if you would like to make use of a
# suexec-enabled cgi-bin directory on a per-user basis.
#
#<Directory /home/*/public_html/cgi-bin>
#    Options ExecCGI
#    SetHandler cgi-script
#</Directory>

</IfModule>

cihan-tristit

Evet modül eklemek lazım. Ama configurasyonda başka sorunlar da olabilir. En iyisi sondan başa gelelim.

tail -f /var/log/apache2/error.log

ile bir terminalde hata çıktısını açıp, diğer taraftanda tarayıcınızdan adresini girip dosyanıza erişmeyi deneyin. Bakalım hangi hata düşüyor. Sonucu paylaşın ona göre ilerleyelim.

martinamca

Akşam çalıştığım dosyayı silmişim ancak aşağıdaki uzun hata kayınlarında şu madde var. Sebep bu olabilir mi?

Options ExecCGI is off in this directory: /home/mehmet/public_html/pyt_dene/ilk_sayfa.cgi

Şu sayfadaki çözümü yapmak için /home/mehmet/public_html/pyt_dene/ dizinine bir .htaccess dosyası açıp içine aşağıdakileri koyup çözmeye çalışıcam. Dosyaları oluşturduktan sonra sizin verdiğiniz komuttan aldığım çıktıları da aktarırım.

<Directory /home/*/public_html/cgi-bin/>
Options ExecCGI
SetHandler cgi-script
</Directory>


[Sun Mar 14 02:26:24 2010] [error] [client 127.0.0.1] File does not exist: /var/www/localhost/htdocs/favicon.ico                               
[Sun Mar 14 02:26:24 2010] [error] [client 127.0.0.1] File does not exist: /var/www/localhost/htdocs/favicon.ico                               
[Sun Mar 14 02:49:30 2010] [notice] caught SIGTERM, shutting down                                                                             
[Sun Mar 14 02:57:30 2010] [notice] Digest: generating secret for digest authentication ...                                                   
[Sun Mar 14 02:57:30 2010] [notice] Digest: done                                                                                               
[Sun Mar 14 02:57:30 2010] [notice] mod_python: Creating 8 session mutexes based on 150 max processes and 0 max threads.                       
[Sun Mar 14 02:57:30 2010] [notice] mod_python: using mutex_directory /tmp                                                                     
[Sun Mar 14 02:57:30 2010] [notice] FastCGI: process manager initialized (pid 13580)                                                           
[Sun Mar 14 02:57:31 2010] [notice] Apache/2.2.14 (Unix) mod_python/3.3.1 Python/2.6.2 mod_fastcgi/2.4.6 PHP/5.2.12 with Suhosin-Patch configured -- resuming normal operations                                                                                                               
[Sun Mar 14 02:57:42 2010] [alert] [client 127.0.0.1] /home/mehmet/public_html/pyt_dene/.htaccess: Options not allowed here, referer: http://localhost/~mehmet/pyt_dene/                                                                                                                     
[Sun Mar 14 02:58:23 2010] [alert] [client 127.0.0.1] /home/mehmet/public_html/pyt_dene/.htaccess: Options not allowed here, referer: http://localhost/~mehmet/pyt_dene/                                                                                                                     
[Sun Mar 14 02:58:36 2010] [error] [client 127.0.0.1] File does not exist: /var/www/localhost/htdocs/favicon.ico                               
[Sun Mar 14 02:58:39 2010] [error] [client 127.0.0.1] File does not exist: /var/www/localhost/htdocs/favicon.ico                               
[Sun Mar 14 02:58:49 2010] [alert] [client 127.0.0.1] /home/mehmet/public_html/pyt_dene/.htaccess: Options not allowed here                   
[Sun Mar 14 03:06:51 2010] [alert] [client 127.0.0.1] /home/mehmet/public_html/pyt_dene/.htaccess: <Directory not allowed here                 
[Sun Mar 14 03:12:10 2010] [alert] [client 127.0.0.1] /home/mehmet/public_html/pyt_dene/.htaccess: ScriptAlias not allowed here               
[Sun Mar 14 03:12:11 2010] [alert] [client 127.0.0.1] /home/mehmet/public_html/pyt_dene/.htaccess: ScriptAlias not allowed here               
[Sun Mar 14 03:12:11 2010] [alert] [client 127.0.0.1] /home/mehmet/public_html/pyt_dene/.htaccess: ScriptAlias not allowed here               
[Sun Mar 14 03:12:12 2010] [alert] [client 127.0.0.1] /home/mehmet/public_html/pyt_dene/.htaccess: ScriptAlias not allowed here               
[Sun Mar 14 03:12:12 2010] [alert] [client 127.0.0.1] /home/mehmet/public_html/pyt_dene/.htaccess: ScriptAlias not allowed here               
[Sun Mar 14 03:12:25 2010] [notice] caught SIGTERM, shutting down                                                                             
[Sun Mar 14 03:12:38 2010] [notice] Digest: generating secret for digest authentication ...                                                   
[Sun Mar 14 03:12:38 2010] [notice] Digest: done                                                                                               
[Sun Mar 14 03:12:38 2010] [notice] mod_python: Creating 8 session mutexes based on 150 max processes and 0 max threads.                       
[Sun Mar 14 03:12:38 2010] [notice] mod_python: using mutex_directory /tmp                                                                     
[Sun Mar 14 03:12:38 2010] [notice] FastCGI: process manager initialized (pid 18542)                                                           
[Sun Mar 14 03:12:38 2010] [notice] Apache/2.2.14 (Unix) mod_python/3.3.1 Python/2.6.2 mod_fastcgi/2.4.6 PHP/5.2.12 with Suhosin-Patch configured -- resuming normal operations                                                                                                               
[Sun Mar 14 03:12:46 2010] [alert] [client 127.0.0.1] /home/mehmet/public_html/pyt_dene/.htaccess: ScriptAlias not allowed here               
[Sun Mar 14 03:12:47 2010] [alert] [client 127.0.0.1] /home/mehmet/public_html/pyt_dene/.htaccess: ScriptAlias not allowed here               
[Sun Mar 14 03:12:48 2010] [alert] [client 127.0.0.1] /home/mehmet/public_html/pyt_dene/.htaccess: ScriptAlias not allowed here               
[Sun Mar 14 03:12:49 2010] [alert] [client 127.0.0.1] /home/mehmet/public_html/pyt_dene/.htaccess: ScriptAlias not allowed here               
[Sun Mar 14 03:12:49 2010] [alert] [client 127.0.0.1] /home/mehmet/public_html/pyt_dene/.htaccess: ScriptAlias not allowed here               
[Sun Mar 14 03:12:49 2010] [alert] [client 127.0.0.1] /home/mehmet/public_html/pyt_dene/.htaccess: ScriptAlias not allowed here               
[Sun Mar 14 03:18:04 2010] [error] [client 127.0.0.1] Options ExecCGI is off in this directory: /home/mehmet/public_html/pyt_dene/ilk_sayfa.cgi, referer: http://localhost/~mehmet/pyt_dene/                                                                                                 
[Sun Mar 14 03:18:16 2010] [error] [client 127.0.0.1] Options ExecCGI is off in this directory: /home/mehmet/public_html/pyt_dene/ilk_sayfa.cgi, referer: http://localhost/~mehmet/pyt_dene/                                                                                                 
[Sun Mar 14 03:20:09 2010] [alert] [client 127.0.0.1] /home/mehmet/public_html/.htaccess: Invalid command 'Addhangler', perhaps misspelled or defined by a module not included in the server configuration, referer: http://localhost/~mehmet/pyt_dene/                                       
[Sun Mar 14 03:20:19 2010] [alert] [client 127.0.0.1] /home/mehmet/public_html/.htaccess: Invalid command 'Addhangler', perhaps misspelled or defined by a module not included in the server configuration, referer: http://localhost/~mehmet/pyt_dene/                                       
[Sun Mar 14 03:20:23 2010] [alert] [client 127.0.0.1] /home/mehmet/public_html/.htaccess: Invalid command 'Addhangler', perhaps misspelled or defined by a module not included in the server configuration, referer: http://localhost/~mehmet/pyt_dene/                                       
[Sun Mar 14 03:20:23 2010] [alert] [client 127.0.0.1] /home/mehmet/public_html/.htaccess: Invalid command 'Addhangler', perhaps misspelled or defined by a module not included in the server configuration, referer: http://localhost/~mehmet/pyt_dene/                                       
[Sun Mar 14 03:20:24 2010] [alert] [client 127.0.0.1] /home/mehmet/public_html/.htaccess: Invalid command 'Addhangler', perhaps misspelled or defined by a module not included in the server configuration, referer: http://localhost/~mehmet/pyt_dene/                                       
[Sun Mar 14 03:20:26 2010] [alert] [client 127.0.0.1] /home/mehmet/public_html/.htaccess: Invalid command 'Addhangler', perhaps misspelled or defined by a module not included in the server configuration, referer: http://localhost/~mehmet/pyt_dene/                                       
[Sun Mar 14 03:21:01 2010] [error] [client 127.0.0.1] Options ExecCGI is off in this directory: /home/mehmet/public_html/pyt_dene/ilk_sayfa.cgi, referer: http://localhost/~mehmet/pyt_dene/                                                                                                 
[Sun Mar 14 03:21:40 2010] [error] [client 127.0.0.1] Options ExecCGI is off in this directory: /home/mehmet/public_html/pyt_dene/ilk_sayfa.cgi, referer: http://localhost/~mehmet/pyt_dene/                                                                                                 
[Sun Mar 14 03:24:58 2010] [error] [client 127.0.0.1] Options ExecCGI is off in this directory: /home/mehmet/public_html/pyt_dene/ilk_sayfa.cgi, referer: http://localhost/~mehmet/pyt_dene/                                                                                                 
[Sun Mar 14 03:25:10 2010] [error] [client 127.0.0.1] Options ExecCGI is off in this directory: /home/mehmet/public_html/pyt_dene/ilk_sayfa.cgi, referer: http://localhost/~mehmet/pyt_dene/                                                                                                 
[Sun Mar 14 03:25:17 2010] [error] [client 127.0.0.1] Options ExecCGI is off in this directory: /home/mehmet/public_html/pyt_dene/ilk_sayfa.py, referer: http://localhost/~mehmet/pyt_dene/                                                                                                   
[Sun Mar 14 03:27:04 2010] [error] [client 127.0.0.1] Options ExecCGI is off in this directory: /home/mehmet/public_html/pyt_dene/ilk_sayfa.py, referer: http://localhost/~mehmet/pyt_dene/                                                                                                   
[Sun Mar 14 03:27:07 2010] [error] [client 127.0.0.1] Options ExecCGI is off in this directory: /home/mehmet/public_html/pyt_dene/ilk_sayfa.cgi, referer: http://localhost/~mehmet/pyt_dene/                                                                                                 
[Sun Mar 14 03:29:43 2010] [error] [client 127.0.0.1] Options ExecCGI is off in this directory: /home/mehmet/public_html/pyt_dene/ilk_sayfa.cgi, referer: http://localhost/~mehmet/pyt_dene/                                                                                                 
[Sun Mar 14 03:30:06 2010] [notice] caught SIGTERM, shutting down
[Sun Mar 14 03:30:06 2010] [notice] Digest: generating secret for digest authentication ...
[Sun Mar 14 03:30:06 2010] [notice] Digest: done
[Sun Mar 14 03:30:06 2010] [notice] mod_python: Creating 8 session mutexes based on 150 max processes and 0 max threads.
[Sun Mar 14 03:30:06 2010] [notice] mod_python: using mutex_directory /tmp
[Sun Mar 14 03:30:06 2010] [notice] FastCGI: process manager initialized (pid 24987)
[Sun Mar 14 03:30:06 2010] [notice] Apache/2.2.14 (Unix) mod_python/3.3.1 Python/2.6.2 mod_fastcgi/2.4.6 PHP/5.2.12 with Suhosin-Patch configured -- resuming normal operations
[Sun Mar 14 03:30:18 2010] [error] [client 127.0.0.1] Options ExecCGI is off in this directory: /home/mehmet/public_html/pyt_dene/ilk_sayfa.cgi, referer: http://localhost/~mehmet/pyt_dene/
[Sun Mar 14 03:30:19 2010] [error] [client 127.0.0.1] Options ExecCGI is off in this directory: /home/mehmet/public_html/pyt_dene/ilk_sayfa.cgi, referer: http://localhost/~mehmet/pyt_dene/
[Sun Mar 14 03:30:20 2010] [error] [client 127.0.0.1] Options ExecCGI is off in this directory: /home/mehmet/public_html/pyt_dene/ilk_sayfa.cgi, referer: http://localhost/~mehmet/pyt_dene/
[Sun Mar 14 03:30:20 2010] [error] [client 127.0.0.1] Options ExecCGI is off in this directory: /home/mehmet/public_html/pyt_dene/ilk_sayfa.cgi, referer: http://localhost/~mehmet/pyt_dene/
[Sun Mar 14 03:30:20 2010] [error] [client 127.0.0.1] Options ExecCGI is off in this directory: /home/mehmet/public_html/pyt_dene/ilk_sayfa.cgi, referer: http://localhost/~mehmet/pyt_dene/
[Sun Mar 14 03:30:20 2010] [error] [client 127.0.0.1] Options ExecCGI is off in this directory: /home/mehmet/public_html/pyt_dene/ilk_sayfa.cgi, referer: http://localhost/~mehmet/pyt_dene/
[Sun Mar 14 03:30:21 2010] [error] [client 127.0.0.1] Options ExecCGI is off in this directory: /home/mehmet/public_html/pyt_dene/ilk_sayfa.cgi, referer: http://localhost/~mehmet/pyt_dene/
[Sun Mar 14 03:30:21 2010] [error] [client 127.0.0.1] Options ExecCGI is off in this directory: /home/mehmet/public_html/pyt_dene/ilk_sayfa.cgi, referer: http://localhost/~mehmet/pyt_dene/
[Sun Mar 14 03:30:31 2010] [error] [client 127.0.0.1] Options ExecCGI is off in this directory: /home/mehmet/public_html/pyt_dene/ilk_sayfa.cgi, referer: http://localhost/~mehmet/pyt_dene/

martinamca

Çalıştığım dosyaları silmemişim.

tail -f /var/log/apache2/error.log

komutunun çıktısı aşağıdaki şekilde. /home/mehmet/public_html/pyt_dene/ilk_sayfa.cgi dosyasına ulaşmaya çalıştığımda hatayı veriyor.

[Mon Mar 15 00:05:38 2010] [error] [client 127.0.0.1] Options ExecCGI is off in this directory: /home/mehmet/public_html/pyt_dene/ilk_sayfa.cgi, referer: http://localhost/~mehmet/pyt_dene/
[Mon Mar 15 00:07:51 2010] [error] [client 127.0.0.1] Options ExecCGI is off in this directory: /home/mehmet/public_html/pyt_dene/ilk_sayfa.cgi, referer: http://localhost/~mehmet/pyt_dene/


Ayrıca /home/mehmet/public_html/pyt_dene/ dizininin içerisine koyduğum .htaccess dosyasına aşağıdaki satırları ekleyince http://localhost/~mehmet/pyt_dene dizini sunucudan yok oluyor. Yine tıkandım.

<Directory /home/mehmet/public_html/pyt_dene/>
Options ExecCGI
SetHandler cgi-script
</Directory>


cihan-tristit



<Directory /home/mehmet/public_html/pyt_dene/>
Options ExecCGI
SetHandler cgi-script
</Directory>



olan kısımı



<Directory /home/mehmet/pyt_dene/>
SetHandler cgi-script
Options ExecCGI Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>




olarak değiştirin apache2 configurasyonunda. Ardından apache'yi restart edin. Düzelecektir.

martinamca

Verdiğiniz parçayı önce dosya içerisindeki .htaccess dosyasına ekledim olmadı, dizin sunucudan yine kayboldu. Daha sonra /etc/apache2/httpd.conf dosyasına ekledim. Dizin gözükmeye başladı ancak yine aynı hata uyarısını veriyor. İlgili dosyaya ulaşma izni vermiyor. Aralarda da apache'yi durdurup yeniden başlattım.

Acaba, ilk_sayfa.cgi içeriğini mi yanlış yazdım, yoksa önerebileceğiniz başka bir yol daha var mı?

martinamca

/public_html dizinin içerisine de bir tane .htaccess dosyası koymuşum. Bu dosyanın içerisine de bir şeyler eklemişim. Dosyanın içeriğini boşalttım ve apache'yi tekrar başlattım. Şimdi dosyanın içeriğine ulaşabiliyorum. 403 hatası vermiyor ancak dosyanın içeriği olduğu gibi herhangi bir işlem yapılmış olmadan her şeyiyle gözüküyor.

cihan-tristit

Alıntı yapılan: martinamca - 15 Mart 2010 - 14:04:50
Verdiğiniz parçayı önce dosya içerisindeki .htaccess dosyasına ekledim olmadı, dizin sunucudan yine kayboldu. Daha sonra /etc/apache2/httpd.conf dosyasına ekledim. Dizin gözükmeye başladı ancak yine aynı hata uyarısını veriyor. İlgili dosyaya ulaşma izni vermiyor. Aralarda da apache'yi durdurup yeniden başlattım.

Acaba, ilk_sayfa.cgi içeriğini mi yanlış yazdım, yoksa önerebileceğiniz başka bir yol daha var mı?

apache configurasyonuna yazazaktınız. Ordan alıntı yaptığınız için yazma gereği duymamıştım.

martinamca

Apache konfigürasyon dosyası /etc/apache2/httpd.conf değil mi? Verdiğiniz ayarları en son bu dosyanın sonuna ekledim ve sunucuyu kapatıp-açtım. Netice bütün kodlar tarayıcı ekranında saf haliyle duruyor. Bir kaynak tavsiye edebilir misiniz?

cihan-tristit

Evet apache configurasyon dosyası orası. çağırdığınız dosya python dosyası mı? Eğer öyle ise apache conf içerisinde öncelikle şu satır var mı başında # olmadan?

LoadModule python_module modules/mod_python.so


İkincisi eğer python dosyası ise apache confta directory'i işaret eden kısıma şu üç satırı da eklemeniz gerekir.

  AddHandler mod_python .py
  PythonHandler mod_python.publisher
  PythonDebug On

Yani şu şekilde olacak.



<Directory /home/mehmet/pyt_dene/>
SetHandler cgi-script
Options ExecCGI Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
AddHandler mod_python .py
PythonHandler mod_python.publisher
PythonDebug On

</Directory>


cihan-tristit

tabi sonrasında apache'yi restart etmelisiniz.

martinamca

Olmadı, ben biraz daha araştırayım. Yardımınız için teşekkürler.

cihan-tristit

Tarayıcıdan dosyanın direk içeriğini gördüğünüze göre python'u yorumlayamıyor demekki.

http://www.modpython.org/live/current/doc-html/

Bir bakın isterseniz.

martinamca

Aslında .cgi uzantılı dosyanın içeriğinin tamamını ekrana olduğu gibi basıyor. .py uzantılı dosyayı kwrite ile açma veya sisteme kaydedip edilmeyeceğini soruyor, yani normal indirilecek dosya gibi davranıyor. Ben kulllanma kılavuzuna bir göz atayım.