23. marts 2008 - 00:07Der er
60 kommentarer og 1 løsning
WAMP - problem med Apache - PHP
Hej,
Undskyld for at jeg poster i flere fora, men mit spm. har taget en uventet drejning. Startede som MySQL - men er nu nok nærmere Apache/PHP... se tråden(http://www.eksperten.dk/spm/823317)
Essensen er, at min PHP ikke virker - sandsynligvis grundet noget Apache opsætningsproblem...
Har installeret: PHP på c:/php Apache på DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs" MySQL på c:/Program Files/MySQL/MySQL Server 5.0
Har først haft problem med at få rettelser ind i httpd.conf, men efter at have rettet "c:/php/php5apache2.dll" til "c:/php/php5apache2_2.dll", er dette nu lykkedes - desværre kan jeg bare stadig ikke få PHP til at virke
...og med hensyn til Alias module og Mime module, så er jeg ikke helt sikker på hverken hensigt eller virkemåde...??
Nedenstående er mine nuværende settings i httpd.conf:
# Dynamic Shared Object (DSO) Support LoadModule php5_module "c:/php/php5apache2_2.dll" # configure the path to php.ini PHPIniDir "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"
Første linje ikke helt forstået - det er jo det jeg gør. Det er ikke 'den' WAMP udgave jeg bruger - WAMP er bare for at understrege at det ikke er i Linux udgaven - endnu. Har skam downloadet apps'ene enkeltvis og installeret en af gangen. Men det er det jo ikke blevet bedre af. Til gengæld har jeg fået en masse timer til at gå med foreløbig ingenting... // ;o)
PHPIniDir - så skal min PHP.ini vel også ligge der? - har pt. prøvet at lægge den under den viste sti samt "C:/php" og "C:/windows" - alle uden held.
"dir med php blive et systemdir?" - øhm, der tabte du mig lige / ;o)
Men nej pt. ingen fejlmeddelser. Rettede apache ver i dll strengen til 2_2.dll og så var det muligt at tilføje i httpd.conf og genstarte apache - uden problemer.
Mangler så lige at teste om jeg kan køre med alias_Module aktiv på samme tid - den er pt. rem'et ud.
...glemte at svare på 'hvad er det som ikke virker?'
Problemet er at PHP tags ikke aktiveres, når fx. .php sider indlæses - derfor kan jeg heller ikke connecte til MySQL, hvilket var mit oprindelige problem.
Det virker som om, at <?PHP ikke genkendes - ihvertfald sker der ikke et hammerslag indenfor php tags'ene...
Ja - jeg kan se en phpinfo, men ikke'udskrive' en simpel echo 'Hej'
Systemdir - OK forstået. Mener jo også det bør være sådan, men synes bare det virker som om den til trods for, at settings er sat, alligevel insisterer på at anvende 'C:\Windows'
Loadmodule - OK. - kan du for min forståelses skyld forklare forskellen?? (Ved det ene er CGI, men hvad betyder det i praktisk anvendelse...??)
njahh ikke udpenslet, men ved Loadmodule får du flere "funktionaliteter" end ved cgi. Og php "starter" når apache starter, ikke når exe fil kaldes ( så vidt jeg ved! )
Du mener du kan ikke:
<?php echo"Hej"; ?>
To spm.
1. Når du ser en "info", hvad er så "Configuration File (php.ini) Path "
2. Hvad er settings for "error_reporting" i php.ini ?
$results = mysql_query($query) or die(mysql_error());
$row=mysql_fetch_array($results);
echo $row; echo "Er der mon hul?" ?> </BODY> </HTML>
Bøger jeg anvender: WROX: PHP5 (bog1), Apache, MySQL, web development, Pro PHP5, Beginning MySQL Libris: Start på PHP5 (hæfte1), Start på MySQL, PHP og MySQL for absolutte begyndere Wiley: PHP & MySQL for dummies (tjaa.. så er alt vel sagt // ;o) )
Når den sidste simple echo heller ikke virker, er det vel ikke kun noget med MySQL connect'en?? (Lurer på om der kan være noget rettighedsbøvl med i spillet??)
Synes jeg på MySQL forums fornemmer, at der kan være et kompileringsproblem mellem PHP og MySQL i PHP version 5 og frem - er det noget du er bekendt med?
...og jeg må tilstå jeg ikke helt er med på hvad de mener med at kompilere PHP5 ift. MySQL.
Kan godt se i PHP's install.txt at der står noget om ændring af MySQL. Men som jeg læser det er de bare blevet endnu mere integrerede??
extension=php_mysql.dll og extension=php_mysqli.dll
er begge enabled, så den burde også være OK.
Mon der er yderligere ting der er påkrævede for at få mySQL til at virke... - tænker her på nogle af kommentarerne omkring kompilering ift. de nye versioner.
Synes det er noget uklart og at informationerne er noget modstridende, om hvad der egentlig er påkrævet for at få PHP og MySQL til, at spille sammen i de nuværende versioner...
Man kan ikke købe øl m.m. for point, så det er fint nok. Men den ligner jo at du overhovedet IKKE får parset php. Hvad viser "Vis kilde" i din browser? Garanteret al koden.
Jeps - al koden. Den manglende parsning var jo det som oprindelig affødte mit spørgsmål og vi har nu været temmelig vidt omkring, men selv efter alle vores justeringer, er jeg stadig ikke i stand til at pin-pointe, hvor problemet opstår. Synes jo efterhånden PHP er registreret til parsning på Apache efter alle kunstens regler.
Show source viser: <HTML> <HEAD> <TITLE>PHP/MYSQL connect test</TITLE> </HEAD>
<BODY> <?php $connect=mysql_connect("localhost","myUser","myPW") or die("Hey bozo, Check your connections!".mysql_error());
mysql_select_db("test_importtable",$connect) or die (mysql_error());
$query = "SELECT street_name FROM streetnames WHERE street_name like '%Bir%'";
$results = mysql_query($query) or die(mysql_error());
Hvordan du så kan se en phpinfo(); fatter jeg intet af! Er det mon fordi du har rodet så meget med det, at der er gået ged i dir og filer? htdocs, php.ini, httpd.conf phpdir m.m.
Nu jeg ikke er lige ved siden af, vil jeg da foreslå at fjerne alt Apache og php, og geninstallere fra bunden igen.
PHP.ini - Path seperatorer; skal de egentlig vende fremad ('/') eller bagud ('\')?? - har nemlig prøvet begge udgaver, men kan ikke umiddelbart se nogen forskel og i den originale .ini fil findes begge slags.../ ;o)
Har noget af nedenstående noget at sige? (og hvad gør de enkelte værdier...)
; The root of the PHP pages, used only if nonempty. If PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root, if you are running php as a CGI under any web server (other than IIS) see documentation for security issues. ; The alternate is to use the cgi.force_redirect configuration below ;doc_root = doc_root = "C:\Program Files\Apache Software Foundation\Apache2.2\htdocs"
; The directory under which PHP opens the script using /~username used only if nonempty. user_dir =
; Directory in which the loadable extensions (modules) reside. Whether or not to enable the dl() function. The dl() function does NOT work properly in multithreaded servers, such as IIS or Zeus, and is automatically disabled on them. enable_dl = On
...og endelig
FWIW: Nedenstående er mySQL info fra PHPinfo(); som du tidligere forespurgte på...
mysql MySQL Support enabled Active Persistent Links 0 Active Links 0 Client API version 5.0.45
Directive Local Value Master Value mysql.allow_persistent On On mysql.connect_timeout 60 60 mysql.default_host localhost localhost mysql.default_password myPW myPW mysql.default_port 3306 3306 mysql.default_socket no value no value mysql.default_user myUser myUser mysql.max_links Unlimited Unlimited mysql.max_persistent Unlimited Unlimited mysql.trace_mode On On
mysqli MysqlI Support enabled Client API library version 5.0.45 Client API header version 5.0.45 MYSQLI_SOCKET /tmp/mysql.sock
Directive Local Value Master Value mysqli.default_host localhost localhost mysqli.default_port 3306 3306 mysqli.default_pw myPW myPW mysqli.default_socket no value no value mysqli.default_user myUser myUser mysqli.max_links Unlimited Unlimited mysqli.reconnect Off Off
...argh - havde i oventående skrevet at editor er UltraEdit 32, men må have fået redigeret det ud.
filtype - yes det er .php'ere jeg prøver med.
din 19:12 - phpinfo(). Det synes jeg også er total mystisk. For det virker som om noget af det virker og så alligevel ikke...
Men i fejlen fra 18:09 - virker det ikke som om det netop er mySQL elementet den kører henover - får så returneret 0... Filmen knækker så hos mig, når den pludselig skriver source koden ud...
php.ini - er der nogle error settings der styrer det??
Og så synes jeg ikke du skal bruge default user og password i php.ini, også selvom det er en "testserver". Når det skal ud på nettet det du laver, så skal du med garanti bruge user og password, og host
User og PW - det er kun for at holde det simpelt fra start, så det ikke er en mulig fejlkilde. Skal selvfølgelig rettes sidenhen. Regner med noget SSL el. lign. til den tid.
Resultat af dit forslag:
TEST PROGRAM FOR TEST OF PHP CONNECTION TO MYSQL Mellemrum
Stifinder - ALTID med extensions HADER uden. Mangler lige at finde den registry der styrer det, så jeg kan scripte mig til den som default setting (prioritering, first things first - og stifinderhak, overlever jeg nok at sætte via GUI // ;o) )
well, jeg bruger det XP icon som man kan downloade på php.net, men hvis du dobbeltklikker på en php fil, og vælger program til at åbne, og markerer "Brug altid dette program" ( eller lign. ), så vil de jo få icon efter det. ( din editor ) Jeg bruger notepad+ ( ikke ++ ) til åbne php filer.
Yep - index er væk. Nu er der apaches grafik filer og mine .php, men se nu her...
Din 22:07 ser jo lovende ud, så jeg modificerede lidt videre - med koden fra 12:03
Nu ser koden så sådan ud:
<?php echo"TEST PROGRAM FOR TEST OF PHP CONNECTION TO MYSQL"; ?>
<p> Mellemrum </p>
<?php if(false == ($con = @mysql_connect())) { echo"Ingen connect her, uden host, bruger og pass<br>".mysql_error(); }else{ echo"Ok connect!"; mysql_close(); } echo"<br>Echo test igen"; ?>
<p> Mere mellemrum </p>
<?php if(false == ($con = @mysql_connect("localhost", "root", "naishUS1111"))) { echo"Ingen connect her, MED host, bruger og pass<br>".mysql_error(); }else{ echo"Ok connect nr. 2";
$con=mysql_connect("localhost","root","naishUS1111") or die("Hey bozo, Check your connections!".mysql_error());
mysql_select_db("test_importtable",$con) or die (mysql_error()); $query = "SELECT street_name FROM streetnames WHERE street_name like '%Bir%'"; $results = mysql_query($query) or die(mysql_error());
if(mysql_num_rows($results) > 0) { while($row=mysql_fetch_array($results)) { echo $row["street_name"]; } }else{ echo"Ingen rows!"; } mysql_free_result($results) or die (mysql_error()); mysql_close(); } ?>
...OG se så resultatet - der er HUL!!! yipikaya...
TEST PROGRAM FOR TEST OF PHP CONNECTION TO MYSQL Mellemrum
Ingen connect her, uden host, bruger og pass Access denied for user 'ODBC'@'localhost' (using password: NO) Echo test igen Mere mellemrum
Ok connect nr. 2Birkeskoven
Jeg kan ikke påstå, at det står mig lysende klart, hvad der har gjort forskellen - men det virker..., nu kan jeg komme videre.
Kæmpe tusind mange tak for hjælpen.
Kast et svar og der er fulde point - lad os lave et tillægsspm. - så er der 200 i bonus!!
Det er mystisk - UltraEdits statusbar har som den eneste heletiden genkendt PHP taggen og udskilt den ift. HTML tags'ene.
Jeg brugte dit forslag med at oprette i Notepad, så virkede den i første omgang. Derefter lavede jeg den modificerede fil - ligeledes i Notepad, men der var en fejl.
Den skrev en PHP log til htdocs og anførte det var i linjen: echo $row["street_name"]."<br />"; jeg fjernede så ."<br />", så den så sådan ud: echo $row["street_name"];
Gemte så i UltraEdit og var spændt på om den ville holde op med at virke - men den virker stadig...
Nå men som sagt - aftenen er reddet, jeg kan komme videre... Skal så bare lige have lært PHP, SSL, MySQL char encoding i tabeller osv osv.
Synes nu ellers nok jeg havde fået gjort det, men den lange 'fight' havde nok taget den sidste rest af opmærksomhed. Nu skulle det ihvertfald gerne være i orden.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.