PDA

View Full Version : Guida d'installazione "web server" x programmazione "lato server".


Matrixbob
14-04-2005, 15:02
... insomma in soldoni il solito minestrone open surce:
Apache (o Tomcat) + MySQL (o PostgreSQL) + PHP (o Perl per la CGI)

Ne avevo trovata una che funzionava con le vecchie versioni, adesso se la trovo la posto, magari andrebbe aggiornata.
Ma soprattutto vedere se è copyrightata, altrimenti niente post; la dovremmo fare noi.
:mbe: :O :eek: :help: :doh: :cool:

beppegrillo
14-04-2005, 15:11
http://forum.hwupgrade.it/showthread.php?t=693350

Beralios
14-04-2005, 15:18
Ma per iniziare non e' meglio usare un pacchetto come questo ?

http://www.appservnetwork.com/?modules=&applang=en

Devi solo lanciare l'eseguibile, meglio di cosi. :D

Ciao.

Matrixbob
14-04-2005, 16:17
... no no io non mi fido di quelle cose preconfezionate, cmq lo provo.

cionci
14-04-2005, 19:41
... no no io non mi fido di quelle cose preconfezionate, cmq lo provo.
:mano: almeno si impara anche qualcosa di nuovo che in un futuro può tornare utile...

Beralios
15-04-2005, 09:53
Secondo me bisogna valutare l'ambito di applicazione:

1) se devo installare php, mysql, apache in locale per imparare php, l'uso del database mysql, per sviluppare siti web o maschere di accesso al database ben vengano i pacchetti gia' pronti che non mi fanno perdere tempo con decine di parametri.

2) se devo installare un server da mettere in rete con lo stretto necessario che non permetta certe cose allora si che vado nel dettaglio dell'installazione.

Ciao.

cionci
15-04-2005, 10:07
1) se devo installare php, mysql, apache in locale per imparare php, l'uso del database mysql, per sviluppare siti web o maschere di accesso al database ben vengano i pacchetti gia' pronti che non mi fanno perdere tempo con decine di parametri.

2) se devo installare un server da mettere in rete con lo stretto necessario che non permetta certe cose allora si che vado nel dettaglio dell'installazione.

Ok...ma metti che avendo sempre fatto l'operazione 1 ti venga chiesta di fare l'operazione 2 per lavoro... Ti ci vuole mezza giornata di lavoro, con conseguente figura a mer@a con i superiori... Se hai fatto sempre l'operazione 2 ci metti 10 minuti :)

Matrixbob
15-04-2005, 12:58
Anzi tutto, nell'ordine, queste sono le versioni che andrò a tentare d'installare :)
... che dovrebbero essere le ultime stabili con Winzoz

[1] apache_2.0.53-win32-x86-no_ssl.msi (in versione 2 stabilmente già da qualche anno)
[2] php-5.0.4-Win32.zip (perchè mi pare sia l'ultimo modulo stabile di php)
[3] mysql-4.1.11-win32.zip (che ha già supporto a transizioni, chiave straniera sulla tabella & vincoli d'integrità referenziali (http://forum.hwupgrade.it/showthread.php?p=8135598): non è maxDB, ma la fusione di MySQL con MySQL max)
[4] MyODBC-3.51.11-1-win.exe (in modo da evitare l'uso di funzioni native in php verso dbms)
[5] phpMyAdmin-2.6.1-pl3.zip (per dargli script in pasto e creare basi di dati in fretta)
[6] Un buon tools per progettare basi di dati (se ne conoscete sprate pure..)
[7] Static DNS for Your Dynamic IP (http://www.no-ip.com/)

(edit del 27/04/05)

Matrixbob
18-04-2005, 20:16
Ho installato Apache mettendo come network domain: localhost & come server name: localhost.
L'email il mio.
lo ho lasciato in attesa sulla porta 8080.
Installazione "tipica" nella cartella di default.
Fine installazione di Apache per ora.
Lo provo digitando localhost nel browser e se tutto è ok compare la pagina di Apache.
Altra documentazione, comprese le direttive, le trovate nella sua cartella /htdocs/manual

Passiamo al PHP.

Scompatto il file ZIP riguardante il PHP5.
Rinomino la cartella creatasi con indicata la versione in semplice cartella php.
Copio php5ts.dll e php5apache2.dll nella cartella system32 di Winzoz.
Rinomino php.ini-dist in php.ini e mi preparo ad aprirlo con un semplice editor di testo standard.

Apro php.ini e setto stando attenti ad usare un path WINDOWS like:

extension_dir "... path della cartella php\extensions"
upload_tmp_dir "... path della cartella Winzoz\Temp"
SMTP "URI del nostro mailer"
sendomail_from "il mittente della email spedita dal nostro mailer"
session.save_path "... path della cartella Winzoz\Temp"

Salvare il file php.ini e tagliaro x incollarlo nella cartella di Winzoz.

Torniamo alla configurazione di Apache2.

Apriamo l'httpd.conf del webserver precedentemente installato con l'installer ed aggiungiamo al fondo in append stando attenti ad usare path in formato UNIX like stavolta:

LoadModule php5_module c:/php/php5apache2.dll
AddType application/x-httpd-php .php

Poi cerchiamo e modifichiamo la DocumentRoot "path della cartella che voglio rendere publichtml" e sempre 20 righe sotto la stesso path alla voce <Directory>.

Infine a DirectoryIndex aggiungiamo index.php.

Si salva l'httpd.conf e si fa ripartire Apache nel qualcaso fosse stato acceso durante tutta la modifica del suo file di configurazione.

Ora il tipico test in grado di verificare la collaborazione di Apache con il linguaggio lato server php è quella di creare un file.php contenente <?php phpinfo(); ?> salvarlo e richiamarlo da browser con Apache attivo.

Se tutto è andato bene si riveleranno a noi le caratteristiche del webserver appena creato.

Matrixbob
18-04-2005, 20:46
Per quanto riguarda il DBMS MySQL non ho ben capito come riuscire ad installare la versione MAX che ha le caratteristiche che m'interessano.

Non ho capito se devo installare la versione 4.1.11 di MySQL e poi il MAX sopra .... qualcuno lo sa?!

Matrixbob
18-04-2005, 20:50
Secondo me bisogna valutare l'ambito di applicazione:

1) se devo installare php, mysql, apache in locale per imparare php, l'uso del database mysql, per sviluppare siti web o maschere di accesso al database ben vengano i pacchetti gia' pronti che non mi fanno perdere tempo con decine di parametri.

2) se devo installare un server da mettere in rete con lo stretto necessario che non permetta certe cose allora si che vado nel dettaglio dell'installazione.

Ciao.
Si ho capito ma magari i parametri se li vanno a settare loro come vogliono ... l'ideale sarebbe saper programmare in ambiente Winzoz (quindi visual basic?! oppure file di batch?!) e prepararsi una serie di istruzioni da far fare automaticamente.

Io purtroppo non ne sono capace.

Matrixbob
22-04-2005, 14:07
Ok, provo così :)

Installing MaxDB on Microsoft Windows
Change to the directory which contains the MaxDB package you have downloaded.
Unpack the MaxDB package.
To start the Installation Manager, double-click SDBSETUP.exe.
Choose Start MaxDB installation.
Follow the instructions of the Installation Manager.
After finishing the installation, reboot Microsoft Windows.
Showing installed MaxDB components
To display which MaxDB components have been installed, enter the following command on the command line:

sdbregview -l

Base /opt/sdb/programs 7.5.00.24 32 bit valid
Loader /opt/sdb/programs 7.5.00.24 32 bit valid
...

Uninstalling MaxDB
To uninstall the complete MaxDB software, including database instances, proceed as follows:

Stop all database instances:
dbmcli –d <database_name> -u <dbm_user_name>,<dbm_user_password> db_offline
Drop all database instances:
dbmcli –d <database_name> -u <dbm_user_name>,<dbm_user_password> db_drop
Exit all MaxDB programs.
On Linux, open a root shell and enter
/opt/sdb/programs/bin/sdbuninst –all

On Microsoft Windows, open a command prompt and enter
sdbuninst -all

cionci
22-04-2005, 14:25
Scusa, ma a che ti serve MaxDB ?

Matrixbob
22-04-2005, 18:13
Scusa, ma a che ti serve MaxDB ?
X avere le transazioni.
Ho 1 esame dove devo costruire un e-shop e non posso permettermi di rendere il database inconsistente.
Quindi mi serviranno le transazioni e tutte le propieta di 1 DBMS A.C.I.D.

Inoltre dovrò usare php/jsp + odbc/jdbc.

Ho i brividi solo al pensiero.

Tutto questo entro Luglio e mentre dovrei studiare anche Analisi 2.

Quindi caro Cionci se poi vuoi darmi una mano, avrai coscienza + leggera. ( ... le sto provando tutte L:)L )

Matrixbob
22-04-2005, 19:28
Peccato che il file che dice la spiegazione non è nella cartella creatasi dall'unzip ... e le cose si complicano, come sempre!
http://dev.mysql.com/doc/maxdb/instupgrade.html

Questo fantomatico "MaxDB Installation Manager" non so propio dove sia ...

Provo con questo: http://dev.mysql.com/doc/maxdb/en/56/650577e868394f8d17f57e831a5e2d/content.htm

Prerequisites
· You must have administrator rights for your computer.

· You need to download and unpack the installation package (see Downloading and Unpacking the Software Under Microsoft Windows).

Procedure
...

1. Open the Command Prompt and navigate to the local directory that contains the installation files:
maxdb-all-win-<32|64>bit-<arch>-<version>

2. Enter sdbinstto call the installation program.

3. The system displays the possible installation profiles. Enter the ID for the all installation profile and confirm your entry.

4. The system now checks whether the database system was previously installed on your computer.

¡ If installations of the database system already exist on your computer, a list of these installations is displayed.
If you want to install new database software in parallel to the existing installation, enter none. You then have the option of specifying a new installation path. Define an installation path in parallel to the existing installation paths.

¡ If there are no installations of the database system on your computer, the software components contained in the installation profile will now be installed. Depending on the installation profile that you have chosen, the system may prompt you to specify the following paths:

§ Path for storing the data, configurations, and run directories of database instances and database applications (the system default is C:\Program Files\sdb\data)

§ Path for storing the programs and libraries shared by the database instances and database applications (the system default is C:\Program Files\sdb\programs)

§ Path for storing the server software that depends on the database version.
This path must be unique. Multiple directories with different versions can exist alongside each other (the system default is C:\Program Files\sdb\<version>).

Enter your chosen paths or confirm the system default values.

A message will be displayed informing you that the installation was successful.

5. If the database system was not installed on your computer before now, we recommend that you now shut down and restart your computer to make the <independent_program_path> known to the system.

Result
The all database software installation profile is now installed and registered on your computer. You can use the log to check the result of the installation (Logging on Microsoft Windows).

Matrixbob
22-04-2005, 20:30
Questa volta dopo aver dato qualhce invio e qualche yes ho ottenuto la probabile installazione:
http://img132.echo.cx/img132/7186/risultato0jb.gif

Mo mi chiedo se avrà 1 interfaccia grafica altrimenti penso che si userà testualmente e già mi viene voglia di spararmi.

Magari posso usarlo solo con PhpMyAdmin.

Chissà se mi ha installato già lui da solo l'ODBC ...

Troppi interrogativi nella mia testa :( sigh, possibile che questo 3D non interessi a nessuno?! :confused: :rolleyes: :mbe:

Matrixbob
23-04-2005, 00:51
Da PhpMyAdmin:
Impossibile caricare l'estensione mysql,
prego controllare la configurazione di PHP

DOCUMENTAZIONE
[1.20] I receive the error "cannot load MySQL extension, please check PHP Configuration".
To connect to a MySQL server, PHP needs a set of MySQL functions called "MySQL extension". This extension may be part of the PHP distribution (compiled-in), otherwise it needs to be loaded dynamically. Its name is probably mysql.so or php_mysql.dll. phpMyAdmin tried to load the extension but failed.
Usually, the problem is solved by installing a software package called "PHP-MySQL" or something similar.

Automaticamente tradotto in:
Ricevo l'errore "non può caricare l'estensione di MySQL, per favore controllare la Configurazione di PHP". Per collegare a un server di MySQL, PHP ha bisogno di una serie di funzioni di MySQL l'"estensione di MySQL" chiamata. Quest'estensione può essere la parte della distribuzione di PHP, altrimenti ha bisogno di essere dinamicamente caricato. Il suo nome è probabilmente il mysql.os o il php_il mysql.dll. Il phpMyAdmin ha tentato di caricare l'estensione ma fallito.
Di solito, il problema è risolto installando un pacchetto software chiamato il PHP-Mysql o qualcosa di simile.

cionci
23-04-2005, 02:30
X avere le transazioni.
Ho 1 esame dove devo costruire un e-shop e non posso permettermi di rendere il database inconsistente.
Quindi mi serviranno le transazioni e tutte le propieta di 1 DBMS A.C.I.D.

Inoltre dovrò usare php/jsp + odbc/jdbc.

Ho i brividi solo al pensiero.

Tutto questo entro Luglio e mentre dovrei studiare anche Analisi 2.

Quindi caro Cionci se poi vuoi darmi una mano, avrai coscienza + leggera. ( ... le sto provando tutte L:)L )
MySQL 4.1 ha le transazioni...non devi abilitare niente... Basta fare le tabelle del tipo InnoDB...

cionci
23-04-2005, 02:35
MaxDB non è MySQL...

Devi installare l'estensione di MySQL per PHP, dalla versione 5 non è più built-in...l'estensione si chiama php_mysql.dll

Matrixbob
23-04-2005, 02:41
MaxDB non è MySQL...

Devi installare l'estensione di MySQL per PHP, dalla versione 5 non è più built-in...l'estensione si chiama php_mysql.dll
:what:
Guarda, è da sto pm che ci sto provando, qui il mio ulimo post:
http://forum.hwupgrade.it/showthread.php?t=927119
adesso vado a dormire senza aver cacciato il ragno dal buco e con qualche anno di vita in meno ... :old:

Le transazioni nel 4.1 dubito che ci siano, devono esserci delle funzioni che specifichino star transiction - commit - rollback.

Almeno fino a poco tempo fa occorreva la versione MAX al posto della 4.1, m'informerò ancora meglio, adesso non capisco + niente.
Grazie cionci.

cionci
23-04-2005, 02:50
MaxDB non è MySQL Max... MaxDB è quelloc he si chiamava SapDB...
MySQL 4.1 contiene già MySQL Max ed è il servizio che parte di default (sinceramente mi sembra che lo fosse anche nelle ultime versioni della 4.0)...

Il supporto alle transazioni è già incluso...

cionci
23-04-2005, 02:53
In php 5 la directory di default delle estensioni si chiama "ext" e non "extension"...

Matrixbob
23-04-2005, 08:33
Hai ragione cionci, mi son documentato ed hai ragione.
Per la cartella pensa che lo ho messo sia in extensions modificando il path in php.ini che in ext ... magari non funzione perchè non funziona MaxDB.
Sto PM disinstallo MaxDB e faccio l'installazione tipica di MySQL 4.1

Il mio php_mysql.dll è di 49k spero sia lui ...

cionci
23-04-2005, 11:58
No...l'estensione viene caricata indipendentemente dalla presenza di mysql installato...
Il problema mi sa che è la mancanza di libmysql.dll... Guarda qui: http://www.zend.com/manual/ref.mysql.php Non ci pensavo più :doh:
Questa dll la trovi nella dir di installazione di MySql...

Matrixbob
23-04-2005, 14:16
No...l'estensione viene caricata indipendentemente dalla presenza di mysql installato...
Il problema mi sa che è la mancanza di libmysql.dll... Guarda qui: http://www.zend.com/manual/ref.mysql.php Non ci pensavo più :doh:
Questa dll la trovi nella dir di installazione di MySql...
Ok inserita in system32 di Winzoz e MySQL ora parte ed arrivo al PMA.
Grazie Cionci, se permetti continuerò qui il mio report.
Ciao.

cionci
23-04-2005, 14:21
Ehm e dove devo metterlo questo file "libmysql.dll", in system32 di Winzoz ?!
Lì dice nella directory di Windows (non system32, ma quella principale), ma suppongo che vada bene uguale...

Matrixbob
26-04-2005, 16:56
Ok, allora eravamo rimasti al file php_mysql.dll da mettere nella cartella ext o extensions perchè io l'avevo chiamata così nel php.ini la cartella contenente le estensioni.
Inoltre il file libmysql.dll va messo nella cartella system32.

A MySQL installato è meglio provare se tutto è ok mettendo da prompt di winzoz:
> mysql -u root -p

(oppure > mysql -help per sapere tutti i comandi)

poi inserite la password da voi scelta per root durante l'installazione del DBMS e se tutto è ok, allora compare il wellcome!

NB
Sia Apache che MySQL si settano come servizi in autorun all'avvio, se volete altrimenti settateli come tali.
---

Adesso trattiamo PMA che è 1 aplz scritta in PHP e quindi per funzionare ha bisogno della corretta installazione di webserver + il linguaggio lato server PHP. All'interno della cartella di PhpMyAdmin#versione c'èDocumentation.html che spiega la configurazione di quest'ultimo.

Provo a riassumerla alla buona:
[1]
si apre il file config.inc.php con 1 semplice editor di testo

[2]
setto l'URI della directory di PMA:
$cfg['PmaAbsoluteUri'] = 'http://localhost/phpMyAdmin-2.6.1-pl3/';

[3]
setto l'accesso a MySQL:
$cfg['Servers'][$i]['auth_type'] = 'config'; // Authentication method (config, http or cookie based)?
$cfg['Servers'][$i]['user'] = 'root'; // MySQL user
$cfg['Servers'][$i]['password'] = 'LA TUA PASSWORD MySQL'; // MySQL password (only needed with 'config' auth_type)

Se tutto è ok, allora avete appena finito di configurare le diversi componenti in modo da interagire in una applicazione web.

Matrixbob
27-04-2005, 19:07
L'unica cosa che purtroppo ignoro è questa scritta che trovo vaga:
"l'estensione PHP mbstring non è stata trovata e sembra che si stia utilizzando un set di caratteri multibyte. Senza l'estensione mbstring, phpMyAdmin non è in grado di dividere correttamente le stringhe di caratteri e questo può portare a risultati inaspettati".

http://img103.echo.cx/img103/6156/errorepma5ar.gif

dal quale aspetto 1 commento di Cionci. :)

cionci
27-04-2005, 19:21
C'è scritto: manca l'estensione mbstring

extension=php_mbstring.dll

Matrixbob
27-04-2005, 19:34
C'è scritto: manca l'estensione mbstring

extension=php_mbstring.dll
Ok attivato con la procedura usata per il php_mysql.dll.
Adesso magari trattiamo il file .htaccess gli allow e i deny.

Matrixbob
11-05-2005, 11:57
Nel file httpd.conf si va a cercare questa parte di testo:

<Directory "path della mia cartella www pubblica">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs-2.0/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride AuthConfig
#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all
</Directory>

Il settaggio corretto di Allow & Deny permettono di controllare l'accesso al nostro web server.

Order è l'ordine di valutazione ovvero prima permetto chi e poi vieto a chi, oppure, prima vieto a chi e poi permetto a chi.

Quindi una configurazione valida potrebbe essere:
Order allow,deny
Allow indirizzoIP indirizzoIP dominio_qualsiasi .... etc etc ....
Deny indirizzoIPcattivo

Quindi l'indirizzoIPcattivo ha il divieto d'accesso al nostro web server Apache.

AllowOverride AutoConfig da il risultato di permettere agli utenti del web server di poter configurare loro stessi in locale alcune direttive di Apache in un file ".htaccess".

Un esempio tipico dell'uso di ".htaccess" è quello di gestire le autentificazioni all'accesso.

Matrixbob
11-05-2005, 15:16
Peccato che mi da quest'errore:

[Wed May 11 15:14:03 2005] [alert] [client 127.0.0.1] D:/www/.htaccess: Invalid command 'AuthDigestFile', perhaps mis-spelled or defined by a module not included in the server configuration

cionci
11-05-2005, 15:28
Hai caricato il modulo giusto ? http://www.auburn.edu/docs/apache/mod/mod_digest.html

Matrixbob
11-05-2005, 15:57
Hai caricato il modulo giusto ? http://www.auburn.edu/docs/apache/mod/mod_digest.html
Come sempre il cionci mi aiuta, infatti c'era da decommentare in httpd.conf questa stringa:

LoadModule auth_digest_module modules/mod_auth_digest.so

Ok il contenuto del mio file .htaccess è:
AuthType Digest
AuthName "nome_gruppo_cui_far_appartenere_l'autentificazione_dell'utente"
AuthDigestFile path_assoluto_unix_like/.htpasswd
Require valid-user

Il file .htpasswd lo create col comando di apache (quindi nella sia cartella bin) lanciato da shell (o si dice propt dei comandi?! o_O) in questo modo:
htdigest -c .htpasswd nome_gruppo_cui_far_appartenere_l'autentificazione_dell'utente username

Dopo di che seguide cosa vi chiede il programma.

Require valid-user indica che a poter essere autenticato deve essere un utente presente in .htpasswd.

Matrixbob
11-05-2005, 17:04
A questo punto non rimane che progettare in EER la base di dati e trasformarla in relazionale preferibilmente con qualche tool per non perdere giorni della propia vita.

http://img223.echo.cx/img223/1542/eerproject5vo.gif

La maggior parte di quei tool permettono una creazione automatica di script in SQL puro che potete mandare in esecuzione in svariati modi.

Dopo di che s'interroga il DB con PHP in ODBC se si vole indipendenza dal DBMS installato quindi MySQL piuttosto che PostgreSQL.
Oppure se si vuole + efficienza con funzioni "native" verso il DBMS scelto (quindi qui ci tocca scegliere se efficienza o portabilità):

my_connect(...);
pg_connect(...);
odbc_connect(...);

e + in generale:

X_connect(...);

Altra piccola cosa degna di nota sono i "trigger" che in PostgreSQL sono implementati e vi permettono di agire ad eventi sulle tabelle della base di dati, cose che potrebbero essere molto utili in alcune applicazzioni web.

A questo punto se Cionci volesse rendere complementare alla sua questa guida io ne sarei onorato.

Nel frattempo passerò a lavorare su perl/cgi e Tomcat: servlet/jsp.

cionci
11-05-2005, 17:54
Come dicevo...la dovresti riorganizzare e mettere in un unico post...