- Danne V
- Medlem ●
- Karlstad
Jag har läst instruktioner och tutorials så ögonen blöder, men har inte hitta vettiga förklaringar och blir bara mer o mer förvirrad: Har 10.3.7 på G5 single 1,8 och 1Gb SDRAM.
Ett dussing sajter placerade i User/Sites/ dvs inte EN sajt i mappen, utan flera som ligger en nivå under mappens root.
Första problemet:
Har förgäves försökt få includes (via shtml) att funka genom att bl.a. ändra private/etc/httdp/httpd.config
AddType text/html .shtml
AddHandler server-parsed .shtml
Vad 17 ska man egentligen göra?
Andra problemet:
Jag kommer åt Sites via tre olika URL. Två av dessa visar sidorna (utan SSI) men den tredje visar bara kod så länge sidorna har .shtml-ändelse:
http://192.168.0.2/~namn/ är IP som datorn fått från en router. Men när jag använder den så blir dokumentrelativa länkar plötsligt rootrelativa och det går alltså inte att navigera på sajterna (eftersom de ligger "en våning ner" i root, så stämmer alltså inte rootrelativiteten) Varför händer detta???
http://mitt-namn-computer.local/~username/ gör exakt samma som ovan: alla länkar blir rootrelaterade.
http://127.0.0.1/~username/ som inte ens vill kännas vid när sidorna har en .shtml extension. Då visar browsern bara ren kod.
Varför all dessa vägar till mappen Sites, och hur ska jag få veta vilken som är vilken i inställningar, osv??????
Tredje frågan:
Finns det någon bra (gratis) control panel till Apache på macen så man slipper dona med dokument? Jag vill helt enkelt undvika felskrivningar.
Tack tack på förhand alla kunniga människor för all hjälp hälsar
Danne
Tänkte försöka svara på din andra fråga. För det första så är det samma sajt du når på alla adresserna.
http://192.168.0.2/~username/ Är servern på datorns "officiella" IP-adress.
http://mitt-namn-computer.local/~username/ Är servern på datorns RendezVous-namn
http://127.0.0.1/~username/ Är servern på datorns loopback IP-adress. Den funkar även om du inte fått något IP från routern.
~-tecknet är en markering för en användare på datorn. Det säger alltså egentligen åt Apache att hämta innehållet i Sites-mappen hos användaren username. För varje användare du har på datorn finns alltså en sådan adress.
Serverns verkliga root finns istället i /Library/WebServer/Documents/ (om du inte ändrat den)
Det verkar smått otroligt att dokumentrelativa länkar skulle sluta fungera. Skulle du kunna ge något exempel på hur detta fungerar/inte fungerar?
Tänkte försöka svara på din andra fråga. För det första så är det samma sajt du når på alla adresserna.
Jo, det förstår jag eftersom dom inte finns - fysiskt - på tre platser utan på en enda. Men dilemmat är vilken man ska använda, och vilkeen som påverkas av inställningarna (som ju görs på olika platser. Inte bara i httpd.config utan även i t.ex. mySQL, osv). Och varför i helskotta VISAR dom inte samma sak om det är "samma" sajt??? Jag antar att det egentligen inte alls är "samma". Hur, har jag inte en susning om...
Det verkar smått otroligt att dokumentrelativa länkar skulle sluta fungera. Skulle du kunna ge något exempel på hur detta fungerar/inte fungerar?
Dom har inte SLUTAT fungera. Dom har ALDRIG funkat (systemet installerat imorse). Exempel? Javisst:
Om jag är på sida http://192.168.0.2/~username/1.shtml och ska till sida 2.shtml och dom ligger precis bredvid varandra i samma mapp och länken sålunda ser ut så här: <a href="2.shtml">Klicka här</a> så lägger servern till root-URLen (förlåt, det blir alltså inte rootrelativa länkar utan absoluta länkar) och letar alltså efter 2.shtml enligt länken http://192.168.0.2/2.html
Den inte bara gör om länken från att vara dokumentrelativ, utan hoppar alltså över /~username/ i URLen.
MEN det finns ljus i tunneln: Jag har iofs bara en sajt med html, resten är shtml. Och det verkar funka fint med html - det är bara shtml som krånglar...
Enligt vad jag har erfarit kan apache bete sig lite konstigt om man inte har satt ServerName i httpd.conf. Hur ser den biten ut?
Mitt förslag är att du sätter det till 192.168.0.2 (så länge du bara testar internt, och inte har något DNS-namn till datorn).
Men i ärlighetens namn har jag inte lekt något med shtml-filer...
Enligt vad jag har erfarit kan apache bete sig lite konstigt om man inte har satt ServerName i httpd.conf. Hur ser den biten ut?
Mitt förslag är att du sätter det till 192.168.0.2 (så länge du bara testar internt, och inte har något DNS-namn till datorn).
Men i ärlighetens namn har jag inte lekt något med shtml-filer...
Provade ServerName i httpd.config till http://192.168.0.2/ men länkar funkar inte ändå. Precis som förut.
En liten utförligare beskriving av hur dom där tre olika URLen visar upp sidorna. Exemplet är en shtml-fil (kallad "mypage.shtml" här) som ska aktivera ett litet PHP-script som finns i en folder:
http://user-names-computer.local/~username/mysite/foo.shtml visar filen UTAN includes. PHP-scriptet aktiveras.
http://192.168.0.2/~username/mysite/foo.shtml visar filen UTAN includes. PHP-skriptet funkar.
http://127.0.0.1/~username/mysite/foo.shtml funkar UTAN includes. PHP-skriptet funkar INTE.
Jag tror det här börjar bli för rörigt och svårt och om ingen orkar sätta sig in i problemen så förstår jag om ingen orkar svara...
Men grundproblemet borde väl vara att Apache inte låter sig konfigureras så att jag kan ändra root. Eller snarare: Att jag kan ge varje sajt en egen root. I vart fall vet inte jag hur det skulle gå till (läste nånstans att Apache 1.3 som finns i Mac kanske inte klarar detta, utan att det krävs Apache 2.0)
Danne
Vet inte riktigt om det är såhär du vill ha det, men jag supportar en site med 20+ domäner som servas från samma Apache, tidigare 1.3 och numera 2.0. Såhär kan det se ut i 1.3:s httpd.conf:
<VirtualHost min.site.se>
DocumentRoot /home/blaha/public_html
ServerName min.site.se
#ErrorLog /var/log/xxxx
#TransferLog /var/log/yyyy
</VirtualHost>
Nu är detta en Linuxburk så sökvägen till användarna skiljer lite, men ändå. DNS:en för de virtuella servrarna får man förstås fixa separat.
I 2.0 har man iaf i Debian hackat upp detta i småbitar, så varje virtuell host ligger i en egen konfigfil i en katalog, och i en annan finns symlänkar till de som verkligen är aktiverade (à la System V init).
Vet inte riktigt om det är såhär du vill ha det, men jag supportar en site med 20+ domäner som servas från samma Apache, tidigare 1.3 och numera 2.0. Såhär kan det se ut i 1.3:s httpd.conf:
<VirtualHost min.site.se>
DocumentRoot /home/blaha/public_html
ServerName min.site.se
#ErrorLog /var/log/xxxx
#TransferLog /var/log/yyyy
</VirtualHost>
Nu är detta en Linuxburk så sökvägen till användarna skiljer lite, men ändå. DNS:en för de virtuella servrarna får man förstås fixa separat.
I 2.0 har man iaf i Debian hackat upp detta i småbitar, så varje virtuell host ligger i en egen konfigfil i en katalog, och i en annan finns symlänkar till de som verkligen är aktiverade (à la System V init).
Björn!
Heders! Men nu funkar ju länkarna (vi postade samtidigt och missade varandras svar).
Beträffande ditt andra svar med konfigurationen in httpd.config:
1. Jag har redan
AddType text/html .shtml
AddHandler server-parsed .shtml
avkommenterat och klart.
2. jag har INTE:
LoadModule includes_module /usr/lib/apache/1.3/mod_include.so
utan istället:
LoadModule includes_module libexec/httpd/mod_include.so
som också är avkommenterad. (filen ligger i HD>usr>libexec>httpd> so länken ska väl vara rätt?)
3. Jag har INTE:
XBitHack on
Läste om detta häromdagen, men eftersom jag trodde det var en extra modul som inte finns förinstallerad utan måsta skaffas så brydde jag mig inte mer. Finns den i systemet? Är det bara att aktivera den?
4. Jag har INTE:
<DirectoryMatch ^/home/.*/public_html>
Options Indexes SymLinksIfOwnerMatch Includes
AllowOverride AuthConfig
</DirectoryMatch>
utan stället:
<DirectoryMatch ".*\.\.namedfork">
Order allow,deny
Deny from all
Satisfy All
</DirectoryMatch>
Kan man bara ändra där?
1.000 tack för hjälp o idéer!!!
Danne
Björn!
<DirectoryMatch ".*\.\.namedfork">
Order allow,deny
Deny from all
Satisfy All
</DirectoryMatch>
Den där ska du inte röra
Du borde ha en som er ut så här:
<Directory /Users/*/Sites>
Massa skit
</Directory>
Och den är kommenterad, så börja med att avkommentera den och av någon anledning så är IncludesNoExec satt i den så ändra det till Includes så borde det funka
Den där ska du inte röra
Nä fasen. Jag stöter inte i nåt som jag inte vet vad det är.
I alla fall inte särskilt ofta.
Eller utan att göra en backup först.
Vilket jag ibland glömmer och chansar ändå...
Men just DEN kodsnutten lät jag i alla fall vara ifred...
Du borde ha en som er ut så här:
<Directory /Users/*/Sites>
Massa skit
</Directory>
Och den är kommenterad, så börja med att avkommentera den och av någon anledning så är IncludesNoExec satt i den så ändra det till Includes så borde det funka
Tack!
Av nån anledning såg jag inte ditt inlägg och hann därför prova Robo-Xs förslag först, som alltså funkade (peppar, peppar...).
Men jättebussigt ändå, och tack för inlägget!
Danne
Provade ServerName i httpd.config till http://192.168.0.2/ men länkar funkar inte ändå. Precis som förut.
En liten utförligare beskriving av hur dom där tre olika URLen visar upp sidorna. Exemplet är en shtml-fil (kallad "mypage.shtml" här) som ska aktivera ett litet PHP-script som finns i en folder:
http://user-names-computer.local/~username/mysite/foo.shtml visar filen UTAN includes. PHP-scriptet aktiveras.
http://192.168.0.2/~username/mysite/foo.shtml visar filen UTAN includes. PHP-skriptet funkar.
http://127.0.0.1/~username/mysite/foo.shtml funkar UTAN includes. PHP-skriptet funkar INTE.
Jag tror det här börjar bli för rörigt och svårt och om ingen orkar sätta sig in i problemen så förstår jag om ingen orkar svara...
Men grundproblemet borde väl vara att Apache inte låter sig konfigureras så att jag kan ändra root. Eller snarare: Att jag kan ge varje sajt en egen root. I vart fall vet inte jag hur det skulle gå till (läste nånstans att Apache 1.3 som finns i Mac kanske inte klarar detta, utan att det krävs Apache 2.0)
Danne
Varför inte använda include funktionen i PHP när du använder PHP till annat ?
Varför inte använda include funktionen i PHP när du använder PHP till annat ?
Bra fråga, och motiverad:
8-10 av sajterna i mappen har redan vanlig SSI och jag orkar inte fibbla med dom.
Men jag håller på att försöka lära mig PHP och annat, så de kommer, de kommer.....
Nillon,
Jag TROR jag testade det, men nu är min hjärncell trött och vill gå o lägga sig. Själv ska jag kolla en rulle. Testar ditt förslag imorron.
...och uppskattar all hjälp ENORMT mycket. Bara så alla som läser detta vet...
Danne
LÄNKPROBLEMET LÖST!!!!
Nu kan jag navigera utan problem. Pust....
Roten (!) till det onda var ett eget idiotmisstag som "alla" gör någon gång men ingen vågar erkänna att dom någonsin har gjort. Men eftersom jag vill visa er vilken ödmjuk kille jag egentligen är, så berättar jag:
Vid något tillfälle har jag, utan att märka det, valt "Root relative paths" i stället för "Document relative paths" i Dreamweaver. Ett gäng länkar var således helt åt helsike när jag kollar i egen maskin, men OK på remote server. Därför funkade somliga, andra inte, och jag fick phan inte in i mitt arma huvve varför det inte ens var nån konsekvens i eländet.
Som straff ska jag omedelbart hälla smält bly i öronen....
Detta har jag i nämnda Debian Linux/Apache 1.3-konfig, och det funkar:
===
LoadModule includes_module /usr/lib/apache/1.3/mod_include.so
AddType text/html .shtml
AddHandler server-parsed .shtml
XBitHack on
<DirectoryMatch ^/home/.*/public_html>
Options Indexes SymLinksIfOwnerMatch Includes
AllowOverride AuthConfig
</DirectoryMatch>
===
(XBitHack måste man inte ha, men det är ett niftigt sätt att slippa .shtml genom att istället sätta SSI-filerna som executable.)
jag kom för eet tag på att det bästa sättet för mina sidor att fungera var att inte använda Dreamwaver...
Ovidkommande kommentarer som (dessutom inte är särskilt klyftiga) har en väldig förmåga att få den ordinarie frågan att försvinna i bruset, och jag vill väldigt, väldigt gärnaatt det inte händer utan måste få problemet löst.
Så snälla, snälla. Kan vi inte hålla oss till ämnet?
1.000 tack för hjälp o idéer!!!
Jo, jag skrev exakt så några inlägg tidigare.
Har du följt tråden och vill uttrycka samma tacksamhet, eller hann du t.ex. klicka på "skapa inlägg" innan du skrivit nåt?
Kul att veta, eftersom man har lite svårt att förstå ditt inlägg annars...
Se till att både "LoadModule includes_module libexec/httpd/mod_include.so" och "AddModule mod_include.c" är inte bort kommentarade i din /etc/httpd/httpd.conf fil. Ta bort # tecknet för båda modulerna.
Öppna sen din user profil hittas i /etc/httpd/users/dittkortnam.conf och skapa en virtual host (virtual host är lättast p g a om Apple uppdaterar Apache servern så kan det hända att uppdateraren skriver över din httpd.conf fil och allt som står där försvinner. Din user.conf fil lämnas alltid kvar.
I filen skriver du :
<VirtualHost *>
ServerAdmin namn@email.se
DocumentRoot /Users/dittkortanamn/Sites
ServerName localhost
AddType text/html .shtml .html
AddHandler server-parsed .shtml .html
<Directory "/Users/dittkortsnam/Sites">
Options Indexes FollowSymLinks MultiViews Includes
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Det gör att om du skriver localhost eller 127.0.0.1 så kommer du alltid till din DocumentRoot som du har definierat i VirtualHost. Du kan alltså ändra DocumentRoot till att peka var som helst på din dator där du vill att din hemsida ska vara. Glöm inte att ändra Directory till samma mapp som DocumentRoot. Starta om Webservern när du har sparat allt.
//Rob
Robo-X
JAAAAA!!!!!!!!!
Hade ingen aning om att det fanns en extra konfigurationsfil för den EGNA "Sites"-mappen. Det första jag gjorde efter att läst ditt inlägg var att öppna den (givetvis) och lägga till "Includes" i den befintliga koden så att det blev:
<Directory "/Users/danvendel/Sites/">
Options Indexes MultiViews Includes
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Startade om Apache (till tonerna av låten med samma namn av The Shadows, inspelad 1965 eller nåt) och NU FUNKAR SSI!!!!!
Alltså innan jag ens klämde in "din" kod. Bör jag göra det ändå, eller räcker det nu???
Tack!
Danne
</nästan grinar av lättnad>
PS: Jag har några PHP-filer. Bör jag klämma in .php nånstans i Addtypes åxå (det verkar funka ändå, men du verkar ju ha koll så jag passar på att fråga)
PS2: "LoadModule includes_module libexec/httpd/mod_include.so" och "AddModule mod_include.c" har varit aktiva (dvs inget #) hela tiden...
PS3: Jag klämde in "din" kod till slut ändå, så att den virtuella servern blir min mapp...
Jag hade ingen aning om att apple hade gjort så varje user fick sin egen cong-fil så Robo-Xs lösning måste nog anses som den bästa. Ifall du gjort som jag sa så hade det slutat med att du haft två inställningar för samma mapp och jag är ganska säker på att det hade strulat mer då
Vad som är bra med virtual hosts är att du kan lägga in fler hosts som pekar till mappar för olika sidor. T ex
<VirtualHost *>
ServerAdmin mail@user.se
DocumentRoot "/Users/dittkortnamn/Sites/job1">"
ServerName job1.localhost
AddType text/html .shtml .html
AddHandler server-parsed .shtml .html
<Directory "/Users/dittkortnamn/Sites/job1">
Options Indexes FollowSymLinks MultiViews Includes
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *>
ServerAdmin mail@user.se
DocumentRoot "/Users/dittkortnamn/Sites/job2">"
ServerName job2.localhost
AddType text/html .shtml .html
AddHandler server-parsed .shtml .html
<Directory "/Users/dittkortnamn/Sites/job2">
Options Indexes FollowSymLinks MultiViews Includes
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Sen ändrar du i hosts filen (/etc/hosts) och lägger dit
127.0.0.1 job1.localhost
127.0.0.1 job2.localhost
Nu kan du skriva job1.localhost i din browser så öppnar job1 sidan. Du kan skapa många fler virtual hosts och hoppa mellan jobben bara genom att skriva job2.localhost, job3.localhost osv. Ganska smidigt.
Vissa php cms (t ex geeklog) behöver ha register-globals ON men den senaste php uppdateraren från Apple har satt den till off. Om du vill ha det på så kan du ändra i din conf fil och för den siten i din virtual host ägga in php_flag register_globals on. Fördelen med att lägga in den i din conf fil är att register_globals variabels är satt till on endast för den siten.
<VirtualHost *>
ServerAdmin mail@user.se
DocumentRoot "/Users/dittkortnamn/Sites/job1">"
ServerName job1.localhost
AddType text/html .shtml .html .php
AddHandler server-parsed .shtml .html
<Directory "/Users/dittkortnamn/Sites/job1">
Options Indexes FollowSymLinks MultiViews Includes
AllowOverride None
Order allow,deny
Allow from all
php_flag register_globals on
</Directory>
</VirtualHost>
//Rob
Robo,
Jo, under dom här dagarna har jag plöjt igenom "lite" material om Apache och vid ett tillfället hittade jag denna beskrivning för att få fler servrar och funderade på att testa. Men som jag fattade funkar det bara på Apache 2.0, inte 1.3 som ju finns i Macen.
Men å andra sidan behöver jag inte fler servrar alls. Ingen av sajterna i mappen är beroende av root för t.ex. länkning. Så jag arkiverar tipset för framtiden.
Takk takk!
Danne