Apache - download in loc de execute

Aici puteţi posta întrebari legate de instalare şi configurare PHP, Apache, IIS, MySQL, PostgreSQL, Oracle, SQL Server sau altele.

Moderator: Moderatori

preda.vlad
Average Member
Mesaje: 192
Membru din: Vin Mar 20, 2009 4:56 pm
Contact:

Apache - download in loc de execute

Mesajde preda.vlad » Vin Sep 25, 2009 4:22 pm

Am o mica problema pe un server.

Am instalat lampp (pe Ubuntu), am configurat totul incat sa fie cat de cat secure, dar am o problema.

Am un site in php care merge, iar in acel site am facut un subfolder cu un fisier care functioneaza in urmatorul mod :
daca nu e setata o variabila GET, afiseaza un form cu action la acelasi fisier si o variabila GET, altfel creaza tabele in baza de date.

Cand intru in acel fisier, vad formularul, il completez, si cand dau submit creaza tabelele, si imi apare un prompt sa downloadez fisierul (care are 0kb) - in loc sa afiseze mesaj de confirmare. Ajax-ul din fisiere care merg perfect pe localhost nu merge.

Am incercat sa creez un fisier de test in acel subfolder, care contine echo 'test'; si imi afiseaza ce trebuie.

Am setat CHMOD 777 la tot folderul - pentru test.

A mai patit cineva asta ?

Thx.

LE : M-am uitat in error logs ... nu am gasit nimic relevant, in mime.types - era totul ok, am facut un fisier in acelasi folder care contine <? echo phpinfo() ?> si afiseaza totul cum trebuie (cred), daca e nevoie pot sa pun aici ce afiseaza.
Ultima oară modificat Vin Sep 25, 2009 7:14 pm de către preda.vlad, modificat 1 dată în total.



oceans
Senior Member
Mesaje: 504
Membru din: Mar Noi 13, 2007 3:06 pm

Mesajde oceans » Vin Sep 25, 2009 8:46 pm

Daca ti-a mers testul ala cu echo atunci inseamna ca ar trebui sa fie totul ok. Daca iti apare sa downloadezi in timp ce executa inseamna ca e ceva in script care face sa moara PHP-ul, daca poti sa postezi codul pt ca ceva e in neregula, poate niste query-uri mysql care dureaza prea mult, care ocupa prea multa memorie, etc.

preda.vlad
Average Member
Mesaje: 192
Membru din: Vin Mar 20, 2009 4:56 pm
Contact:

Mesajde preda.vlad » Vin Sep 25, 2009 11:10 pm

Am reusit sa restrang cele 300 de linii de cod la 86 (= sters tot ce tine de css, pozitionare, afisare detaliata de mesaje).

Functionalitatea in momentul de fata e urmatoarea :
1. Cand intri pe pagina vezi un formular cu 3 inputuri (user parola mail) + submit
2. Completezi si dai submit
3. Sunt create tabelele in baza de date(daca exista), si inserat userul
4. Apare un prompt cu download SAU o pagina alba (se comporta diferit in functie de browser si sistem de operare, din cate am observat, pe linux - firefox = download, xp firefox = download, xp opera = pagina alba, firefox windows 7 = pagina alba).

Din ce am vazut pe google, asta se intampla de obicei cand php nu e instalat, dar faza e ca sunt multe site-uri pe server care merg perfect, si mi se pare foarte ciudat.

Si inca o chestie ciudata, pe xp pe localhost, scriptul merge perfect, de-asta cred ca este o problema de la configurarea serverului apache.

Cod: Selectaţi tot

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
   <head>
      <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    </head>
   <body>
      <?php
         if(!$_GET['go']) {
      ?>
      <form method="post" action="install.php?go=true">
         <input type="text" name="username" id="username" />
         <input type="password" name="password" id="password" />
         <input type="text" name="email" id="email" />
         <input type="submit" id="install" value="install!" />
      </form>
      <?php
         } else {
            require 'config.php';      // Conectarea la BD

            $table_messages = 'CREATE TABLE `'.SQL_PREFIX.'messages` ( `recipient` text, `sender` text, `message` text, `type` text, `stamp` text, `id` bigint(20) unsigned NOT NULL auto_increment, UNIQUE KEY `id` (`id`) ) ;';
            if(!mysql_query($table_messages)) {
               if(mysql_errno() == 1050) {
                  print "Table '".SQL_PREFIX."messages' already exists!";
                  $problem = true;
               } else {
                  $error = true;
               }
            } else {
               mysql_query('ALTER TABLE `'.SQL_PREFIX.'messages` CHANGE `message` `message` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL');
            }
           
            $table_users = 'CREATE TABLE `'.SQL_PREFIX.'users` ( `username` varchar(32), `password` varchar(32), `email` text, `is_online` int(11) default \'0\', `last_ping` text, `last_ip` varchar(15), `banned` tinyint(1) default \'0\', `admin` tinyint(1) default \'0\', `buddyicon` varchar(4) NOT NULL default \'none\', `profile` text, `id` bigint(20) unsigned NOT NULL auto_increment, UNIQUE KEY `id` (`id`), UNIQUE `username` (`username`) ) ;';
            if(!mysql_query($table_users)) {
               if(mysql_errno() == 1050) {
               } else {
                  $error = true;
               }
            } else {}
           
               $table_chats = 'CREATE TABLE `'.SQL_PREFIX.'chats` ( `room` text, `user` text, `id` bigint(20) unsigned NOT NULL auto_increment, UNIQUE KEY `id` (`id`) ) ;';
            if(!mysql_query($table_chats)) {
               if(mysql_errno() == 1050) {
                  $problem = true;
               } else {
                  $error = true;
               }
            } else {
               mysql_query('ALTER TABLE `'.SQL_PREFIX.'chats` CHANGE `room` `room` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL');
            }
         
            $table_buddylists = 'CREATE TABLE `'.SQL_PREFIX.'buddylists` (`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `user` VARCHAR( 100 ) NOT NULL, `buddy` VARCHAR( 100 ) NOT NULL, `group` VARCHAR( 100 ) NOT NULL, INDEX ( `user` , `group` )) ENGINE = MYISAM ;';
            if(!mysql_query($table_buddylists)) {
               if(mysql_errno() == 1050) {
                  $problem = true;
               } else { $error = true;}
            } else {
            }
           
            $table_blocklists = 'CREATE TABLE `'.SQL_PREFIX.'blocklists` (`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `user` VARCHAR( 100 ) NOT NULL, `buddy` VARCHAR( 100 ) NOT NULL, INDEX ( `user` , `buddy` )) ENGINE = MYISAM ;';
            if(!mysql_query($table_blocklists)) {
               if(mysql_errno() == 1050) {
                  $problem = true;
               } else { $error = true;}
            } else {}
         
            $add_user = 'INSERT INTO `'.SQL_PREFIX.'users` (username, password, email, admin) VALUES (\'' . mysql_real_escape_string($_POST['username']) . '\', \'' . mysql_real_escape_string(md5($_POST['password'])) . '\', \'' . mysql_real_escape_string($_POST['email']) . '\', 1)';
            if(!mysql_query($add_user)) {
               $error = true;
            } else {
               print "User adaugat";
            }
            if ($maxBuddyIconSize > 0) {
               if (trim(substr(sprintf('%o', fileperms('./buddyicons/')), -4)) != 777) {
                  $error = true;
               } else {}
            }
            mysql_close();

            if($error)
               print 'Eroare';
            else
               print 'Merge';
       }
   ?>
   </body>
</html>


oceans
Senior Member
Mesaje: 504
Membru din: Mar Noi 13, 2007 3:06 pm

Mesajde oceans » Sâm Sep 26, 2009 4:00 am

De cate ori iti apare promptul ala, de fiecare data cand intri pe script sau random ? Incearca sa rulezi doar scriptul de conectare config.php ca sa vezi daca problema e de la MySQL. Daca conectarea merge fara probleme incearca sa pui mai putine query-uri de creare a tabelelor, pana cand vezi ca merge. Apoi incearca sa dai un restart la Apache si MySQL, poate ca sunt multe procese care inca ruleaza desi nu ar trebui.
E serverul tau ? Daca da incearca sa upgradezi Apache si PHP la niste versiuni mai noi, poate ca problema a fost deja rezolvata, daca nu poate e un nou bug..

preda.vlad
Average Member
Mesaje: 192
Membru din: Vin Mar 20, 2009 4:56 pm
Contact:

Mesajde preda.vlad » Dum Sep 27, 2009 3:23 pm

Promptul imi apare cand dau submit la formular, deci e posibil sa fie de la query-uri cum ai zis tu, asta ar insemna ca script-ul pe care l-am luat si acum incerc sa-l configurez are query-uri care nu merg bine dintr-un motiv sau altul - o sa incerc maine.

Parca am incercat sa dau restart la Apache si MySQL, dar nu sunt sigur asa ca mai incerc.

Da, e serverul meu, si tocmai am instalat ultimul lampp (saptamana trecuta) - poate e un nou bug pe versiunea asta, desi ma indoiesc.

Ms de sfaturi, si dupa / daca reusesc sa rezolv situatia / sa primesc informatii noi o sa postez aici.

ebogdan
Senior Member
Mesaje: 218
Membru din: Joi Iul 27, 2006 2:45 pm
Localitate: Constanta

Mesajde ebogdan » Lun Sep 28, 2009 2:43 pm

Clear cache la browser/încearcă cu alt browser.

oceans
Senior Member
Mesaje: 504
Membru din: Mar Noi 13, 2007 3:06 pm

Mesajde oceans » Mar Sep 29, 2009 9:29 am

Apropo de ce folosesti lampp ? iti ia o ora - 2 in plus sa instalezi manual si setezi totul cum vrei tu fara alte third-party-uri si cum ai spus tu exista riscul de a da de un nou bug, deci mai bine sa fie instalate direct.

floorin
Senior Member
Mesaje: 247
Membru din: Joi Iun 29, 2006 6:03 pm

Mesajde floorin » Mar Sep 29, 2009 10:32 am

Pune si codul de ajax.


Înapoi la “Instalare”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 10 vizitatori