Du er ikke logget ind: Log ind eller opret profil
 
Tutorials

Lokal Apache-server og MySQL på Windows 7 64 bit; til Drupal

Artiklen her er ikke en helt rigtig tutorial: den forklarer ikke alt, men samler informationer fra et par gode kilder om emnet og giver nogle konklusioner på et emne, der godt kan give lidt hovedpine. Hos kilderne, som der er linket til, er der detaljerede skridt-for-skridt-forklaringer.
Da jeg begyndte med Drupal, arbejdede jeg på min udbyders server, overførte filer og konfigurerede og opdaterede databaser (MySQL) med phpMyAdmin og Drupals eget interface. Jeg indrettede sandkasse-kopier af sites, som så senere blev offentliggjort. Det kan man godt, men man er afhængig af at have internetforbindelse og af forbindelsens båndbredde. Det skal helst gå stærkt.
Fordele:

  • Man er uafhængig af internet-forbindelse
  • Det går hurtigere
  • Hvis projektet også er på en anden webserver, har man altid minimum 1 lokal backup
  • Man kan teste og udvikle lokalt og uploade testede ændringer til en offentlig webserver
  • Man kan, gratis og hurtigt, oprette så mange websites og databaser, man vil

Her beskrives en velfungerende opsætning af Apache webserver, PHP, MySQL og phpMyAdmin på  til Windows 7 64 bit. Der er fokus på Drupal 7, men du kan køre alt muligt andet også.
Inden du går i gang, kan du overveje, om du ikke hellere skulle køre Mac eller Linux, evt. som virtuel maskine. Apache er født til et Linux/Unix-miljø.
Hvilken server?
Jeg begyndte med XAMPP, og det var enkelt og stabilt, men kørte langsomt. Nogle siger, WAMP er hurtigere, Uniform Server endnu hurtigere, og Zend Server CE (Community Edition) allerbedst. Jeg havde Uniform Server oppe at køre, hvilket var utrolig let og også gik hurtigt. Det gav dog nogle underlige fejl, som jeg ikke fik løst. Uniform Server installeres ikke, men kører bare fra et par exe-filer, og er nok et stærkt valg, hvis det skal være portable, køre fra en USB-stick.
http://drupal.org/node/348202#comment-3349704 forklares, hvordan man sætter en Zend Server op til PHP, mens man bruger XAMPP til MySQL. Jeg ved ikke helt hvorfor, man ikke skal lade Zend køre begge dele. På samme side foreslår en anden, at det kan være for det tilfælde, at man har databaser i XAMPP, man ikke vil flytte. Opsætningen gav mig problemer, og jeg af-installerede XAMPP og MySQL og tilføjede MySQL og phpMyAdmin til Zend-setup'et ved at køre installationsfilen fra Zend igen. Den ser, hvad man har installeret og tillader en at tilføje ekstra komponenter. Enkelt og effektivt.
Administrationen i Zend er god. Apache-serveren kører i din task bar og kan startes, stoppes og genstartes her. Her er en god forklaring på at sætte det op: http://sebastianklinge.wordpress.com/2011/06/30/developing-drupal-websites-on-zend-server-ce/ Vær opmærksom på, at tippet om PHP 5.2 til Drupal er forældet, hvis du vælger Drupal 7 eller nyere. Se evt. http://drupal.org/requirements.
MySQL kan du sikkert genstarte med command prompt, hvis du holder meget af det lille grimme vindue, men også under Kontrolpanel > System og sikkerhed > Administration > Tjenester.
Konfiguration
Det kører først hurtigt, når du har ændret på nogle indstillinger, især til MySQL. Databasens standard-indstillinger skåner din computer. Det er flinkt, men du kan roligt skrue op. Instruktioner på http://tiger-fish.com/blog/wamp-server-and-drupal-running-slowly.
Jeg syntes, det var lidt tricky at udskifte ini-filerne i MySQL, som det er forklaret under linket. Du skal sætte de rigtige stier og mere, hvis du vælger at bruge f.eks. my-large.ini / omdøbe den til my.ini eller kopiere den over i my.ini. Lav backup af ini-filerne, og husk at køre din editor som administrator.
Jeg endte med at ændre i my.ini. Jeg brugte indstillinger fra http://drupal.org/node/259580. VÆR OPMÆRKSOM på, at de fleste linjer er der i forvejen og bare skal have sat andre værdier.
Min MySQL døde af linjen innodb_log_file_size = 10M. Den var sat til 52. Måske havde databasen allerede oprettet filer på den størrelse og kunne ikke skrue ned. Lad det være eller se, om det virker, hvis du sætter det fra starten. Det lyder ikke så vigtigt. Resten (InnoDB-indstillingerne) får din Drupal /MySQL til at trække hårdere på din PC og køre rigtig hurtigt.
http://drupal.org/node/348202#comment-4473280 argumenterer de for en anden konfiguration af innodb_flush_log_at_trx_commit i my.ini, nemlig 2: innodb_flush_log_at_trx_commit = 2. På mit system går det markant hurtigere med innodb_flush_log_at_trx_commit = 1. Prøv at eksperimentere med det.
Hvis du er klogere og mere tålmodig end mig, kan du se på http://www.devside.net/guides/windows/mysql og læse en masse tips og detaljer på den side, her allerede er linket til: http://drupal.org/node/348202.
Kør som administrator
Selv om du er logget på Windows som administrator, snyder den dig, når du piller ved system-filer, og du kan ikke se det. Når du vil rette noget med din tekst-editor eller omdøbe filer, skal du højreklikke på dit program og vælge ”Kør som administrator”, ellers retter du kun en slags kopi, systemet viser dig. En opmærksom fyr gav tippet i en kommentar på http://serverfault.com/questions/285663/apache-refusing-to-change-documentroot.
Anti-virus og firewall
Du må selv overveje, hvor klogt det er at slå dem fra, men mange peger på antivirus og Windows’ firewall som et problem. Prøv alternativt at tillade mysql.exe i din firewall. Jeg har ikke slået noget fra, og det går stærkt alligevel.
Flere indstillinger og mulige problemer
Nogen har skrevet om indstillinger ang. IPv4 og IPv6 og Firefox: se http://drupal.org/node/348202#comment-2176710
Og husk ikke at køre i strømbesparingsmodus, hvis den sparer på CPU’en...

0
Din bedømmelse: Ingen

1 kommentarer

Indsend kommentar

Du kan også sætte RAM-grænser for din server. For at teste et site under samme forudsætninger som online bør du teste med samme memory limit. Sæt den altså individuelt for hvert projekt efter en af metoderne på http://drupal.org/node/207036. Jeg bruger ini_set() i settings.php.
Note: Du kan ikke override et webhotels RAM-grænser på denne måde. Hvis du vil have mere ydelse der, skal der en bedre server til.
Du kan også sætte din Apache-servers hukommelsesgrænse generelt. Med Zend Server på Windows som beskrevet ovenfor sker det via din Zend Controller -> PHP Info (tjek først under memory_limit). Gå til Server Setup -> Directives -> Resource Limits: sæt det nederst, f.eks. til 256, 512 eller 1024 MB.
Eller rediger php.ini under C:\Program Files (x86)\Zend\ZendServer\etc eller hvor du har den.

  • Det er gratis
  • Du kan skrive artikler og tips
  • Du kan få hjælp eller hjælpe andre 
  • - og meget mere …