url semplificati su aruba hosting windows

13 contenuti / 0 new
Ultimo contenuto
url semplificati su aruba hosting windows

Salve,
ho letto come attivare gli url semplificati su piattaforma Aruba.
Pero', poiche' da me non va, girellando per la rete ho trovato un post dove si dice che su piattaforma windows non e' possibile perche' in quel caso, Aruba il file .htaccess non se lo fila di striscio.
effettivamente se io svuoto il file e scrivo:
"viva la vida loca".
sul file.htaccess, funziona lo stesso tutto drupal.
quindi... mi rassegno? o ci sono strade alternative?
ciao!

IIS non ha .htaccess

IIS è il webserver predefinito per Win (quello di solito presente in server win) ma a volta capita che venga instalalto apache anche s server win, in quel caso funziona :)

Ciao
Marco
--
My blog
Working at @agavee

ho controllato, e' iis 6.0.
vedro' se passare a hosting linux anche se non e' che muoia senza url semplificati :-)

Ciao Dein,
sto per procedere al cambio hosting da windows a linux, su Aruba, perchè non riesco a installare drupal.
Però come ultimo tentativo mi appello a te.

Drupal mi dice sempre che register_globals deve essere disattivato sennò non riesce a installarsi.
Mi ignora chiaramente .htaccess, ho creato il file php.ini ma niente da fare anche con quello.

Visto che tu, anche se non riesci a usare gli url semplificati, sei comunque riuscito a installare drupal su hosting windows, mi spieghi come diavolo hai fatto?

So che può sembrare OT, ma per me cambia che spendo o no i 12€ per modificare l'hosting, quindi se mi aiuti è un'opera molto buona.
Grazie

Per evitare di perdere inutilmente più capelli di quelli che già perdo normalmente, dopo diversi tentativi falliti di importare il mio sito drupal-made sotto Aruba con hosting Windows, mi sono deciso definitivamente a fare il passaggio dell'hosting da Windows a Linux.

Ma purtroppo anche ciò, almeno finora, si è dimostrato inutile per far funzionare sto sito in drupal.

Questi sono i passi che ho fatto per tentare di importare il sito sul nuovo hosting linux:
- ho copiato i file del mio sito tramite ftp
- ho esportato da locale e poi importato in remoto il database (dopo che in locale avevo disattivato il modulo Path, per evitare successive beghe con gli URL)
- ho modificato, dopo attente ricerche su vari forum, il file .htaccess , che ora è così:

#
# Apache/PHP/site settings:
#
# Protect files and directories from prying eyes:
<Files ~ "(\.(conf|inc|module|pl|sh|sql|theme|engine|xtmpl)|Entries|Repositories|Root|scripts|updates)$">
  order deny,allow
  deny from all
</Files>
# Set some options
# non supportato da aruba
#Options -Indexes
# non supportato da aruba
#Options +FollowSymLinks
# Customized server error messages:
ErrorDocument 404 /index.php
# Set the default handler to index.php:
# non supportato da aruba
#DirectoryIndex index.php
# Overload PHP variables:
<IfModule mod_php4.c>
   # If you are using Apache 2, you have to use <IfModule sapi_apache2.c>
   # instead of <IfModule mod_php4.c>.
   php_value register_globals        0
   php_value track_vars              1
   php_value short_open_tag          1
   php_value magic_quotes_gpc        0
   php_value magic_quotes_runtime    0
   php_value magic_quotes_sybase     0
   php_value arg_separator.output    "&amp;"
   php_value session.cache_expire    200000
   php_value session.gc_maxlifetime  200000
   php_value session.cookie_lifetime 2000000
   php_value session.auto_start      0
   php_value session.save_handler    user
   php_value session.cache_limiter   none
   php_value allow_call_time_pass_reference  On
</IfModule>
# Various rewrite rules
<IfModule mod_rewrite.c>
  RewriteEngine on
  # Modify the RewriteBase if you are using Drupal in a subdirectory and the
  # rewrite rules are not working properly:
  RewriteBase /
  # Rewrite old-style URLS of the form 'node.php?id=x':
  #RewriteCond %{REQUEST_FILENAME} !-f
  #RewriteCond %{REQUEST_FILENAME} !-d
  #RewriteCond %{QUERY_STRING} ^id=([^&]+)$
  #RewriteRule node.php index.php?q=node/view/%1 [L]
  # Rewrite old-style URLs of the form 'module.php?mod=x':
  #RewriteCond %{REQUEST_FILENAME} !-f
  #RewriteCond %{REQUEST_FILENAME} !-d
  #RewriteCond %{QUERY_STRING} ^mod=([^&]+)$
  #RewriteRule module.php index.php?q=%1 [L]
  # Rewrite URLs of the form 'index.php?q=x':
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</IfModule>
# $Id: .htaccess,v 1.58 2004/10/09 20:41:49 dries Exp $

- ho modificato il file settings.php che ora ha [nome utente, password e nome database] di Aruba nel db_url.
- ho modificato, per essere sicuro che funzioni, i permessi di TUTTI i file su remoto in 777 (anche se di norma non credo sia buono farlo).
- non ho creato nessun file php.ini manualmente, ma sono andato sul "Pannello di controllo" di Aruba, poi su "Servizi Hosting Linux" e poi su "Personalizzazione del file PHP.INI" e da lì gli ho detto di usare il file php.ini preimpostato per DRUPAL.
- ho persino aggiunto al file settings.php questo codice per essere sicuro che register_globals sia settata a off:

if (ini_get("register_globals")){
foreach ($_REQUEST as $k => $v){
unset($GLOBALS[$k]);
unset($$k);
}
}

- e sullo stesso file settings.php ho messo anche questa riga per essere sicuro che non faccia casino con gli URL:

$conf['clean_url'] = 0;

- sempre per evitare macelli con gli URL, in ultimo ho anche eseguito questa query sul db online:

UPDATE variable SET value = 's:1:"0";' WHERE name = 'clean_url';
DELETE FROM cache;

 
     

Ebbene, NONOSTANTE TUTTO, quando provo ad accedere al sito, non mi fa vedere neanche la prima pagina, ma mi da solo questo errore di connessione col db:

Site off-line
The site is currently not available due to technical problems. Please try again later. Thank you for your understanding.
If you are the maintainer of this site, please check your database settings in the settings.php file and ensure that your hosting provider's database server is running. For more help, see the handbook, or contact your hosting provider.
The mysql error was: Access denied for user 'xxxxxx'@'62.149.141.167' (using password: YES).

Ovviamente ho ricontrollato almeno mille volte che username password e databasename siano quelli corretti.

Non so se faccio bene, ma chiedo aiuto a voi su questo forum.
Sono abbastanza stanco e frustrato, perchè mi sono fuso prima per mettere il sito su uno spazio tophost per prova (e alla fine ci sono riuscito) e poi per cercare di metterlo sullo spazio aruba (prima con hosting windows poi con linux), ma senza risultati.
Non so più che fare. mi sembra di averle provate tutte le strade possibili.
Se qualcuno avesse un'idea o un suggerimento, o magari un consiglio tipo "vai a zappare i campi", sono tutti bene accetti, fatemi un fischio.
Grazie

Dato l'ora del post (quasi l'una) spero che ti rimane ancora qualche ciuffo qua e la...
Se forse in te, meglio procedere per piccoli passi. Tipo:

  1. Comè l'ambiente PHP?
  2. Il collegamento MySQL?
  3. Il mod rewrite?

E poi dopo installare/avviare Drupal vero e proprio.

Per questo ho trovato qualche script PHP che potrebbe aiutare. Non proprio mirato a Drupal, ma con qualche piccolo modifica...

Per vedere l'ambiente PHP, basta creare un file tipo testphp.php che contiene:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns='http://www.w3.org/1999/xhtml'>
  <head>
    <title>PHP Information</title>
  </head>
  <body>
    <h1>PHP Information</h1>
    <pre><?php phpinfo(); ?></pre>
  </body>
</html>

(Questo lo tengo in locale, quando mi sento paranoico)

Per il collegamento al database MySQL (se hai già controllato tramite phpMyAdmin - mi pare di si) prova questo script qui (chiamalo testdb.php):
http://www.ardamis.com/2008/05/26/a-php-script-for-testing-a-mysql-datab...
(Non ho controllato che funziona - meglio provare in locale prima)

Per il mod rewrite, qui c'è un altro scriptino (chiamalo testrewrite.php):
http://www.wallpaperama.com/forums/how-to-test-check-if-mod-rewrite-is-e...
(Di nuovo non ho controllato che funziona - meglio provare in locale prima) Scarica il script completo, non il snippet.
Aggiungi in .htaccess:

  ...
  # Rewrite URLs of the form 'index.php?q=x':
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
  # Test
  RewriteRule ^link([^/]*).html$ testrewrite.php?link=$1 [L]
</IfModule>

HTH

John

Più imparo, più dubito.

Innanzitutto grazie per la risposta.

Ho provato tutti i test che mi hai consigliato, e proprio non ne vuol sapere di connettersi al database mysql.
La cosa strana è che accedo con phpmyadmin tranquillamente mediante nomeutente e password, e con gli stessi nomeutente e password non riesco a connettermi tramite file php.
Non riesco a capire da cosa può dipendere.

Ho aggiunto questi test anche al mio sistema locale.
Per il test di mod_rewrite (io l'ho chiamato phprewrite.php):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns='http://www.w3.org/1999/xhtml'>
  <head>
    <title>Apache/PHP mode rewrite test</title>
  </head>
  <body>
    <h1>Apache/PHP mode rewrite test</h1>
    <p><a href="phprewrite.php?link=1">link1</a> phprewrite.php?link=1</p>
    <p><a href="link2.html">link2</a> link2.html</p>
    <p><tt>link1</tt> does not use the mod_rewrite rule, and <tt>link2</tt> does.</p>
    <p>&#160;</p>
    <p>
    <?php
     
if ($_GET['link'] == 1) {
        echo
"You are not using mod_rewrite";
      }
      else if (
$_GET['link'] == 2) {
        echo
"Congratulations! You are using Apache mod_rewrite";
      }
      else {
        echo
"Apache/PHP mod_rewrite test";
      }
   
?>

    </p>
  </body>
</html>

Mentre, credo che ti ho dato un codice errato per il .htaccess. Per il mio http://localhost[/codefilter_code] ho:
#
# Apache/PHP settings:
#
# Various rewrite rules.
<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteRule ^link([^/]*).html$ phprewrite.php?link=$1 [L,QSA]
</IfModule>

Ma, per .htaccess di Drupal, credo che quella regola va messo prima della regola Drupal "catch all":
  ...
  # Test
  RewriteRule ^link([^/]*).html$ phprewrite.php?link=$1 [L]
  # Rewrite URLs of the form 'index.php?q=x':
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</IfModule>

Altrimenti il ^(.*)$ mangerà tutto.
Il file per testare il db (phpdb.php) è:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns='http://www.w3.org/1999/xhtml'>
  <head>
    <title>PHP MySQL test</title>
  </head>
  <body>
    <h1>PHP MySQL test</h1>
    <?php
     
// $db_url = 'mysqli://username:<a href="mailto:password@localhost" rel="nofollow">password@localhost</a>/databasename';
     
$hostname = "????";
     
$username = "????";
     
$password = "????";
     
$database = "????";
     
$link = mysql_connect("$hostname", "$username", "$password");
      if (!
$link) {
        echo
"<p>Could not connect to the server '" . $hostname . "'</p>\n";
        echo
mysql_error();
      }
      else {
        echo
"<p>Successfully connected to the server '" . $hostname . "'</p>\n";
       
printf("MySQL client info: %s\n", mysql_get_client_info());
       
// printf("MySQL host info: %s\n", mysql_get_host_info());
     
}
     
$dbcheck = mysql_select_db("$database");
      if (!
$dbcheck) {
        echo
mysql_error();
      }
      else {
        echo
"<p>Successfully connected to the database '" . $database . "'</p>\n";
       
// Check tables
       
$sql = "SHOW TABLES FROM $database";
       
$result = mysql_query($sql);
        if (
mysql_num_rows($result) > 0) {
          echo
"<p>Available tables:</p>\n";
          echo
"<pre>\n";
          while (
$row = mysql_fetch_row($result)) {
            echo
"{$row[0]}\n";
          }
          echo
"</pre>\n";
        }
        else {
          echo
"<p>The database '" . $database . "' contains no tables.</p>\n";
          echo
mysql_error();
        }
      }
   
?>

  </body>
</html>

Non dimenticare di settare $hostname, $username, $password, $database correttamente.

@lukkio cosa scriveva il test del db?
Se dei quattro valori sei sicuro (tramite phpMyAdmin) di $username, $password, $database allora probabilmente il $hostname non è corretto. Di solito è localhost, ma potrebbe essere un'altra macchina tipo 192.168.0.1. Provare chiedere ad Aruba se il host MySQL è diverso a localhost
Guardando il manuale, potrebbe anche essere un alta porta...

Più imparo, più dubito.

qualcosa si muove.

non sapevo si dovesse usare localhost al posto per esempio di "mysql.aruba.it" come $hostname.
adesso ho provato con localhost e non si connette comunque, ma qualcosa si è mosso, il messaggio di errore è cambiato:

The mysql error was: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2).

Non è affatto detto che localhost sia corretto. Ho dato uno sguardo al mio myPHPAdmin. Cliccando su home (l'icone della casa) mi visualizza il server che da me è:

localhost
    * Server version: 5.0.67-community
    * Protocol version: 10
    * Server: Localhost via UNIX socket

Quindi (per me) localhost va bene. E da te?

Altrimenti, prova con mysqli, sostituisci il codice in phpdb.php con:

    <?php
     
// $db_url = 'mysqli://username:<a href="mailto:password@localhost" rel="nofollow">password@localhost</a>/databasename';
     
$hostname = "????";
     
$username = "????";
     
$password = "????";
     
$database = "????";
     
$link = mysqli_connect("$hostname", "$username", "$password");
      if (!
$link) {
        echo
"<p>Could not connect to the server '" . $hostname . "'</p>\n";
        echo
mysqli_error();
      }
      else {
        echo
"<p>Successfully connected to the server '" . $hostname . "'</p>\n";
       
printf("MySQL client info: %s\n", mysql_get_client_info());
       
// printf("MySQL host info: %s\n", mysql_get_host_info());
     
}
     
$dbcheck = mysqli_select_db($link, "$database");
      if (!
$dbcheck) {
        echo
mysqli_error();
      }
      else {
        echo
"<p>Successfully connected to the database '" . $database . "'</p>\n";
       
// Check tables
       
$sql = "SHOW TABLES FROM $database";
       
$result = mysqli_query($link, $sql);
        if (
mysqli_num_rows($result) > 0) {
          echo
"<p>Available tables:</p>\n";
          echo
"<pre>\n";
          while (
$row = mysqli_fetch_row($result)) {
            echo
"{$row[0]}\n";
          }
          echo
"</pre>\n";
        }
        else {
          echo
"<p>The database '" . $database . "' contains no tables.</p>\n";
          echo
mysqli_error();
        }
      }
   
?>

Non ho la minima idea qualè la differenza fra connessione mysql: e mysqli:, ma non si sa mai...

Più imparo, più dubito.

porca miseria, era lui: su qualche forum, non ricordo dove, avevo letto che dovevo usare come hostname "mysql.aruba.it".
e mi ero fidato ciecamente, anche perchè a logica sembra giusto, ha senso. (oltretutto è lo stesso indirizzo che devo usare per accedere a phpMyAdmin)
e guardando l'errore, drupal me lo risolveva in 62.149.141.167
mentre invece sul phpMyAdmin mi da che l'indirizzo che usa è risolto in 62.149.150.57 !

ora ho copiato in settings.php direttamente l'ip numerico giusto, cioè il secondo. e.......... funziona!!!!!!!!! riesco finalmente a accedere a sto benedetto sito senza più errore di connessione al db. ma vieni!
dunque "mysql.aruba.it" e il vero indirizzo hostname da mettere in settings.php non è detto che coincidano!

a parte che mi sembra strano, perchè se lo stesso nome viene risolto in 2 indirizzi numerici diversi vuol dire che o sono usati 2 DNS diversi, oppure c'è qualche alchemia sovrannaturale.. anche se non so di preciso come funziona drupal per queste configurazioni.

non so come ringraziarti jhl, mi hai illuminato su questo dettaglio che era a quanto pare decisivo.
(per ora però mi limito a considerare UN problema risolto, perchè sicuramente, per esperienza so che ne incontrerò altri ancora questi giorni mentre tento di mettere su questo sito.
ma almeno per le prossime puntate so dove andare a cercare aiuto.. )

Hmm, fammi pensare, con natale in arrivo...

lukkio wrote:
non so come ringraziarti jhl, mi hai illuminato su questo dettaglio che era a quanto pare decisivo.

Prego. E l'altro script per il mod_rewrite?

Più imparo, più dubito.