sql >> Database teknologi >  >> RDS >> Mysql

Projektlinks virker ikke på Wamp Server

Sådan opretter du en virtuel vært i WampServer

WAMPServer 3 har gjort denne proces meget lettere!

Du kan gøre næsten alt fra et hjælpeprogram leveret som en del af WAMPServer.

  • Opret en mappe inde for at indeholde dit project.site. Dette kan være under C:\wamp\www\ mappe eller i en helt separat mappe som C:\websites .

  • Opret en mappe inden for den placering, du har valgt, f.eks. C:\websites\project1\www eller under c:\wamp\www\project1\www

  • Åbn nu localhost wampmanager->localhost og klik på linket Tilføj en virtuel vært under VÆRKTØJER sektionen på hjemmesiden.

Du vil se en side som denne:

  • Udfyld felterne som angivet i instruktionerne over hvert felt

  • Den virtuelle værtskonfiguration vil være blevet oprettet til dig.

  • Nu skal du genstarte DNS-cachen. Du kan gøre dette fra wampmanager-menuerne som denne højreklik wampmanager->Værktøjer->Genstart DNS . DNS-cachen genstartes, og derefter vil Apache også blive stoppet og genstartet. Når wampmanager-ikonet bliver grønt igen, er alt færdigt.

  • Nu skal du oprette en simpel index.php fil eller installer dit websted i den mappe, du oprettede ovenfor.

  • Forudsat at din VH hed project.dev Du bør se dette navn under Dine virtuelle værter Sektion af WAMPServers hjemmeside.

  • Du kan starte webstedet fra denne menu eller blot bruge det nye domænenavn i adresselinjen EG project1.dev og webstedet skal lanceres.

Gamle WAMPServer 2.5-mekanisme, eller hvis du vil gøre det hele manuelt

Der har været et konceptskifte i WampServer 2.5 og nyere, og der er en god grund til denne ændring!

I WampServer opfordres det nu STÆRKT til at oprette en virtuel vært for hvert af dine projekter, selvom du har dem i en \wamp\www\undermappe struktur.

Virtuelle værtsdokumentation

Eksempler på virtuelle værter

WampServer-hjemmesiden ( \wamp\www\index.php ) forventer nu, at du har oprettet en virtuel vært til alle dine projekter og vil derfor kun fungere korrekt, hvis du gør det.

Historie

For at gøre livet lettere for begyndere, der bruger WampServer til at lære PHP Apache og MySQL, blev det foreslået, at du opretter undermapper under \wamp\www\ mappe.

wamp
  |-- www
       |-- Chapter1
       |-- Chapter2
       |-- etc

Disse undermapper vil derefter blive vist som links på WampServer-hjemmesiden under en menu kaldet "Dine projekter", og disse links vil indeholde et link til localhost/submappenavn .

Kun acceptabelt for simple selvstudier

Dette gjorde livet nemt for den helt nybegynder, og det var helt acceptabelt for f.eks. dem, der fulgte tutorials for at lære PHP-kodning. Det var dog aldrig beregnet til brug, når du udviklede et rigtigt websted, som du senere ville ønske at kopiere til din live-hostede server. Faktisk, hvis du brugte denne mekanisme, forårsagede det ofte problemer, da konfigurationen af ​​live-websteder ikke ville matche din udviklingskonfiguration.

Problemet til ægte hjemmesideudvikling.

Grunden til dette er naturligvis, at standardindstillingen for DocumentRoot for wamp er

DocumentRoot "c:/wamp/www/"

uanset hvad din undermappe hed. Denne ment, der ofte brugte PHP-kode, der forespurgte strukturen eller dit websted, modtog anden information, når den kørte på din udviklings-WampServer, end den ville modtage, når den kørte på en live-hostet server, hvor DocumentRoot-konfigurationen peger på mappen øverst i webstedets filhierarkiet. Denne slags kode findes i mange frameworks og CMS'er, f.eks. WordPress og Joomla osv.

For eksempel

Lad os sige, at vi har et projekt kaldet project1 holdt i wamp\www\project1 og køre forkert som localhost/project1/index.php

Dette er, hvad der ville blive rapporteret af nogle af de pågældende PHP-kommandoer:

$_SERVER['HTTP_HOST'] = localhost
$_SERVER['SERVER_NAME'] = localhost
$_SERVER['DOCUMENT_ROOT'] = c:/wamp/www

Hvis vi nu havde defineret det websted korrekt ved hjælp af en Virtual Host-definition og kørte det som http://project1 resultaterne på WAMPServer-udviklingswebstedet vil matche dem, der modtages i et live-hostet miljø.

$_SERVER['HTTP_HOST'] = project1
$_SERVER['SERVER_NAME'] = project1
$_SERVER['DOCUMENT_ROOT'] = c:/wamp/www/project1

Nu kan denne forskel virke triviel i starten, men hvis du skulle bruge et framework som WordPress eller et af CMS'erne som for eksempel Joomla, kan og forårsager dette problemer, når du flytter dit websted til en live server.

Sådan opretter du en virtuel vært i WampServer

Faktisk burde dette fungere stort set det samme for enhver Windows Apache-server, med forskelle kun i, hvor du kan finde Apache-konfigurationsfilerne.

Der er 3 trin til at oprette din første virtuelle vært i Apache, og kun 2, hvis du allerede har en defineret.

  1. Opret den eller de virtuelle værtsdefinitioner
  2. Tilføj dit nye domænenavn til HOSTS-filen.
  3. Fjern kommentering af linjen i httpd.conf, der inkluderer Virtual Hosts-definitionsfilen.

Trin 1 , Opret Virtual Host-definition(er)

Rediger filen kaldet httpd-hosts.conf som for WampServer bor i

\wamp\bin\apache\apache2.4.9\conf\extra\httpd-vhosts.conf

(Apache-versionsnumre kan være forskellige, engager hjernen, før du fortsætter)

Hvis det er første gang, du redigerer denne fil, skal du fjerne standard eksempelkoden, det nytter ikke.

Jeg går ud fra, at vi vil oprette en definition for et websted kaldet project1, der bor i

\wamp\www\project1

Meget vigtigt, først skal vi sikre os, at localhost stadig fungerer, så det er den første VHOST-definition, vi vil sætte i denne fil.

<VirtualHost *:80>
    DocumentRoot "c:/wamp/www"
    ServerName localhost
    ServerAlias localhost
    <Directory  "c:/wamp/www">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>

Nu definerer vi vores projekt:og det gør du selvfølgelig for hvert af dine projekter, når du starter et nyt.

<VirtualHost *:80>
    DocumentRoot "c:/wamp/www/project1"
    ServerName project1
    <Directory  "c:/wamp/www/project1">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>

BEMÆRK:At hver Virtual Host som sin egen DocumentRoot defineret. Der er også mange andre parametre, du kan tilføje til en Virtual Hosts-definition, se Apache-dokumentationen.

Lille til side

Den måde, virtuelle værter fungerer på i Apache:Den første definition i denne fil vil også være standardwebstedet, så hvis domænenavnet, der bruges i browseren, ikke matcher noget faktisk defineret virtuelt hostet domæne, vil det derfor gøre localhost til det første domæne i filen. det er webstedet, der indlæses, hvis et hackforsøg bare bruger din IP-adresse. Så hvis vi sikrer, at Apache-sikkerheden for dette domæne ALTID er indstillet til

Require local

ethvert tilfældigt hack fra en ekstern adresse vil modtage en fejl og ikke komme ind på din pc, men hvis du staver forkert på et domæne, vil du blive vist WampServers hjemmeside, fordi du er på samme pc som WampServer og derfor lokal .

Trin 2 :

Tilføj dit nye domænenavn til HOSTS-filen. Nu skal vi tilføje domænenavnet, som vi har brugt i Virtual Host-definitionen, til HOSTS-filen, så windows ved, hvor det skal finde det. Dette svarer til at oprette en DNS A-post, men det er kun synligt i dette tilfælde på denne specifikke pc.

Rediger C:\windows\system32\drivers\etc\hosts

Filen har ingen udvidelse og bør forblive sådan. Pas på notesblok, da det kan prøve at tilføje en .txt udvidelse, hvis du ikke har en bedre editor. Jeg foreslår, at du downloader Notepad++, det er gratis og en meget god editor.

Dette er også en beskyttet fil, så du skal redigere den med administratorrettigheder, så start din editor ved at bruge Kør som administrator menuvalg.

Hosts-filen skulle se sådan ud, når du har gennemført disse redigeringer

127.0.0.1 localhost
127.0.0.1 project1

::1 localhost
::1 project1

Bemærk, at du skal have definitioner her for IPV4 loopback-adressen 127.0.0.1 og også IPV6 loopback-adressen ::1 da Apache nu er IPV6 opmærksom, og browseren vil bruge enten IPV4 eller IPV6 eller begge dele. Jeg aner ikke, hvordan den beslutter, hvilken den skal bruge, men den kan bruge enten, hvis du har IPV6-stakken slået til, og de fleste vindues-operativsystemer gør det fra XP SP3.

Nu skal vi bede Windows om at opdatere dens domænenavn-cache, så start et kommandovindue igen ved hjælp af Kør som administrator menuen igen, og gør følgende.

net stop dnscache
net start dnscache

Dette tvinger Windows til at rydde sin domænenavnscache og genindlæse den, ved genindlæsning vil den genlæse HOSTS-filen, så nu kender den til domænet project1 .

Trin 3 :Fjern kommentaren til linjen i httpd.conf, der inkluderer Virtual Hosts-definitionsfilen.

Rediger din httpd.conf, brug wampmanager.exe-menuerne for at sikre dig, at du redigerer den korrekte fil.

Find denne linje i httpd.conf

# Virtual hosts
#Include conf/extra/httpd-vhosts.conf

Og fjern bare # for at fjerne kommentarer til den linje.

For at aktivere denne ændring i, at du kører Apache, skal vi nu stoppe og genstarte Apache-tjenesten.

wampmanager.exe -> Apache -> Service -> Restart Service

Hvis WAMP-ikonet i systembakken ikke bliver GRØNT igen, betyder det, at du sandsynligvis har gjort noget forkert i \wamp\bin\apache\apache2.4.9\conf\extra\httpd-hosts.conf fil.

Hvis ja, er her en nyttig mekanisme til at finde ud af, hvad der er galt. Den bruger en funktion i Apache exe (httpd.exe) til at kontrollere dens konfigurationsfiler og rapportere fejl efter filnavn og linjenumre.

Start et kommandovindue.

cd \wamp\bin\apache\apache2.4.9\bin
httpd -t

Så ret fejlene og test igen, indtil du får output

Syntax OK

Nu er der en ting mere.

Der er faktisk 2 nye menupunkter på wampmanager menusystemet. En kaldet 'Mine projekter' som er slået til som standard.Og en anden, kaldet 'Mine virtuelle værter' , som ikke er aktiveret som standard.

'Mine projekter' vil vise en hvilken som helst undermappe af \wamp\www-mappen og give et link til at starte webstedet i den undermappe. Som jeg sagde tidligere, starter den 'project1' og ikke 'localhost/project1' for at gøre link arbejde, vi skal oprette en Virtual Host-definition for at få dette link til rent faktisk at starte det pågældende websted i din browser. Uden Virtual Host-definitionen vil det sandsynligvis starte en websøgning efter webstedsnavnet som et søgeord eller bare returnere et websted, der ikke er fundet.

Menupunktet 'Mine virtuelle værter' er lidt anderledes. Den søger i filen, der bruges til at definere virtuelle værter (vi kommer til det om et minut) og opretter menulinks for hver ServerName-parameter, den finder, og opretter et menupunkt for hver enkelt. Dette kan virke lidt forvirrende, da vi først opretter en virtuel værtsdefinition for underbibliotekerne i mappen \wamp\www, nogle elementer vil blive vist i både menuen 'Mine projekter' og menuen 'Mine virtuelle værter'.

Hvordan slår jeg denne anden 'Mine virtuelle værter'-menu til?

  • Lav en sikkerhedskopi af filen \wamp\wampmanager.tpl, hvis du laver en fejl, er det en meget vigtig fil.
  • Rediger \wamp\wampmanager.tpl
  • Find denne parameter ;WAMPPROJECTSUBMENU , den er i sektionen '[Menu.Left]'.
  • Tilføj denne nye parameter ;WAMPVHOSTSUBMENU enten før eller efter ;WAMPPROJECTSUBMENU parameter.
  • Gem filen.
  • Højreklik nu på wampmanager-ikonet, og vælg 'Opdater'. Hvis dette ikke tilføjer menuen, 'afslut' og genstart wampmanager.

Stor note Den nye menu vises kun, hvis du allerede har defineret nogle virtuelle værter! Ellers vil du ikke se nogen forskel, før du definerer en VHOST.

Nu hvis du tager dette til dens logiske udvidelse

Du kan nu flytte dit websteds kode helt uden for \wamp\ mappestruktur blot ved at ændre DocumentRoot-parameteren i VHOST-definitionen. Så du kan for eksempel gøre dette:

Opret en mappe på wamp-disken eller en hvilken som helst anden disk (pas på netværksdrev, de er lidt mere komplicerede)

D:
MD websites
CD websites
MD example.com
CD example.com
MD www

Du kopierer nu din webstedskode til eller begynder at oprette den i \websites\example.com\www mappe og definer din VHOST sådan her:

<VirtualHost *:80>
    DocumentRoot "d:/websites/example.com/www"
    ServerName example.dev
    ServerAlias www.example.dev
    <Directory  "d:/websites/example.com/www">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    php_flag display_errors Off
    php_flag log_errors On

    php_value max_upload_size 40M
    php_value max_execution_time 60
    php_value error_log "d:/wamp/logs/example_com_phperror.log"
</VirtualHost>

Tilføj derefter dette nye udviklingsdomæne til HOSTS-filen:

127.0.0.1 localhost
::1 localhost

127.0.0.1 project1
::1 project1

127.0.0.1 example.dev
::1 example.dev

BEMÆRK:Det er ikke en god idé at bruge et ServerName eller ServerAlias, der er det samme som dit live domænenavn, som hvis vi havde brugt example.com som ServerName, ville det betyde, at vi ikke længere kunne komme til den rigtige live websted fra denne pc, da det ville dirigere example.com til 127.0.0.1, dvs. denne pc og ikke ud på internettet.

OGSÅ:Se, at jeg har tilladt at få adgang til denne side fra internettet fra VHOST-definitionerne, denne ændring vil kun gælde for denne side og ingen anden. Meget nyttigt for at tillade en klient at se dine ændringer i en time eller deromkring uden at skulle kopiere dem til live-serveren. Dette betyder, at vi er nødt til at redigere denne fil manuelt for at slå denne adgang til og fra i stedet for at bruge Put Online/ Offline menupunkt på wampmanager.

Jeg har også tilføjet nogle ændringer til PHP-konfigurationen, som igen kun gælder for dette ene websted. Meget nyttigt, når du vedligeholder et websted med specifikke krav i modsætning til alle de andre websteder, du vedligeholder. en lang kørende side i den et eller andet sted, og den er meget dårligt skrevet og vil ikke køre med fejl, der vises på browseren uden at lave en frygtelig rod på siden. Tro mig, der findes websteder som dette, og folk ønsker stadig, at de vedligeholdes dårligt . Men det betyder, at vi kun skal ændre disse parametre for dette specifikke websted og ikke globalt til alle virtuelle websteder, der kører på WampServer.



  1. MySQL Workbench-alternativer - ClusterControls peg-og-klik GUI

  2. Nummerseriegenerator-udfordringsløsninger – del 5

  3. SQL Server Regulære udtryk i T-SQL

  4. MySQL InnoDB Cluster 8.0 - En komplet gennemgang af operationen:Anden del