Gå till innehåll
Just nu i M3-nätverket

Problem: Konfigurera Apache för OS X 10.8 Mountain Lion


wallinda

Rekommendera Poster

Hej

 

Mina mac kunskaper är begränsade liksom mina programerings egenskaper, men det hindrar mig inte för att försöka lära mig. Jag har skrapat lite på ytan vad beträffar ASP och vill nu plocka upp det igen. För att komma igång har jag följt en tråd på nätet: http://neutronote.com/?p=242 Mono on os x mountain lion. Längre ner på sidan länkar hen till en tidigare tråd för att konfigurera Apache till mountain Lion http://neutronote.com/?p=117.

 

Det verkar som gemene man har en mapp som heter /etc/apache2/users men i mountain lion måste man skapa mappen SITES.

 

Mitt problem är att jag inte hittar den mappföljden, det enda apache2 jag hittar i finder ligger i ett program som heter mamp pro. Min teori är att Mamp Pro har ändrat om i katalogerna, så jag har försökt att återställa "previus settings" i mamp pro för att avinstallera programmet, men det går inte. Det tillåter mig helt enkelt inte.

 

Det finns en del program som kan hjälpa mig ta bort mamp pro, men kommer det bli återställt som förut då eller är det överhuvudtaget det som är problemet.

 

Någon som kan ta upp tråden och försöka hjälpa mig?

 

/Daniel

Länk till kommentar
Dela på andra webbplatser

Hej

 

Mina mac kunskaper är begränsade liksom mina programerings egenskaper, men det hindrar mig inte för att försöka lära mig. Jag har skrapat lite på ytan vad beträffar ASP och vill nu plocka upp det igen. För att komma igång har jag följt en tråd på nätet: http://neutronote.com/?p=242 Mono on os x mountain lion. Längre ner på sidan länkar hen till en tidigare tråd för att konfigurera Apache till mountain Lion http://neutronote.com/?p=117.

 

Det verkar som gemene man har en mapp som heter /etc/apache2/users men i mountain lion måste man skapa mappen SITES.

 

Mitt problem är att jag inte hittar den mappföljden, det enda apache2 jag hittar i finder ligger i ett program som heter mamp pro. Min teori är att Mamp Pro har ändrat om i katalogerna, så jag har försökt att återställa "previus settings" i mamp pro för att avinstallera programmet, men det går inte. Det tillåter mig helt enkelt inte.

 

Det finns en del program som kan hjälpa mig ta bort mamp pro, men kommer det bli återställt som förut då eller är det överhuvudtaget det som är problemet.

 

Någon som kan ta upp tråden och försöka hjälpa mig?

 

/Daniel

MAMP är (som) ett eget program och ligger i programmappen och har det den behöver där.

Och skall du köra ASP kör du väl ändå inte MAMP (Mac Apache MySQL, PHP).

 

Mappen "Sites". Den försvann i Lion. Men det är bara att skapa en i hemfoldern, så får den även den "specialikonen" som hör till.

/etc/apache2/users

Är den mappen den inbyggda versionen av Apache har för sina "*.conf"-filer. Där kan du ställa in Apache och hur den skall jobba, lägga till egna och/eller konfigurera dina olika "Projekt" som virtual-hosts. (Inga websidor ligger i de mapparna).

 

post-64246-031048100 1365412342_thumb.png

 

 

Fr o m ML försvann webdelningen, så man måste starta manuellt, precis som på sidan där. Men det finns en 3'epartsgrejj som lägger till en "prefpane" i Systeminst. http://clickontyler.com/blog/2012/02/web-sharing-mountain-lion/

 

 

- - -

 

För att komma igång med Apache, så är det det filen "httpd.conf" du skall editera.

/etc/apache2/httpd.conf

Leta upp:

#LoadModule php5_module libexec/apache2/libphp5.so

Se till att den har en fyrkant "#" i början så inte PHP körs (du skall ju köra med ASP).

 

 

Leta upp:

ServerAdmin ***

Och skriv in en bra mailadress där:

ServerAdmin admin@mindomän.se

Strax nedan för under: "DocumentRoot "/Library/WebServer/Documents"

Leta upp i <Directory />

AllowOverride All
AllowOverride None

Samma lite längre ner...

AllowOverride All -> None

 

Du kan även ändra Allow from all -> Deny from all ... så kommer ingen åt sidorna (i webroten) utifrån. Så kan du ställa in det per sida istället i dena vHost-filer.

 

 

Leta upp:

ServerTokens ***

Ändra till:

ServerTokens Minimal

Leta upp:

ServerSignature ***

Ändra till:

ServerSignature Off

Leta upp:

# Virtual hosts

Kika på radena under och se till att vhost filen inte har en "#" i början.

Mina rader ser ut såhär...

# Virtual hosts
Include /private/etc/apache2/extra/httpd-vhosts.conf
Include /private/etc/apache2/users/*.conf

"*.conf" är alla filer i den mappen. så om man vill ha en enda stor fil, eller göra en fil för varje sida/projekt men gör kan man ju välja då. :yeahbaby:

 

Spara.

 

Sen öppna el skapa en fil i t ex:

/etc/apache2/users/projekt1.conf

Och lägg till (exempel):

# VHostfil för olika projekt
#

#============
# projekt1
#============
<VirtualHost *:80>
DocumentRoot /Users/DittNamn/Sites/projekt1
ServerName projekt1.dev
ServerAlias www.projekt1.dev

ServerSignature Off
ServerTokens Minimal

ErrorLog /Users/DittNamn/Sites/projekt1/error_log
CustomLog /Users/DittNamn/Sites/projekt1/error_log common

<Directory "/Users/DittNamn/Sites/projekt1">
# Här kan du lägga saker som som du har i htaccess-filen sen

Options -Indexes
AllowOverride All
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Directory>
</VirtualHost>

Sen lägg till projekt1.dev i hosts:

/etc/hosts

Gör ett par tomma rader på slutet och lägg till:

127.0.0.1 projekt1.dev

Finns även ett smidigt program för att göra det: http://www.macupdate.com/app/mac/40003/hosts

 

- - -

 

Kör i terminalen:

echo "<h1>Hej $USER!</h1>" >> ~/Sites/projekt1/intdex.html

(eller skapa en fil manuellt med ngt i...)

 

 

Nu kan du starta(/starta om) Apache och gå till http://projekt1.dev i webläsaren. Så skall det synas, förutsatt att du har något i den mappen.

 

När du skall editera alla filerna. Skaffa en bra textredigerare. Anv inte TextEdit. Finns många olika bra. TextWrangler är en som är bra och gratis och kan editera filer som man inte har rättigheter till i TextEdit.

 

 

- - -

 

Hur du sen går vidare med ASP, har jag ingen aning om. noidea.gif

Använder inte det. Men det finns säkert många hjälpfiler om det på nätet: https://duckduckgo.com/?q=Asp+on+OS+X

 

.

Länk till kommentar
Dela på andra webbplatser

  • 1 year later...

Väcker lite liv i denna tråd.

Jag får inte rätt på det hela. Jag har gjort precis som ovan men med egna inställningar ändå så kan den inte visa hemsidan som jag lagt i min mapp.

Är det något annorlunda i 10.9 ?

Länk till kommentar
Dela på andra webbplatser

Väcker lite liv i denna tråd.

Jag får inte rätt på det hela. Jag har gjort precis som ovan men med egna inställningar ändå så kan den inte visa hemsidan som jag lagt i min mapp.

Är det något annorlunda i 10.9 ?

Nej, det skall vara samma. Bara att de är nyare versioner av Apache/PHP i 10.9.

 

Hur långt har du kommit? Vilka fel får du? Vad händer och vad händer inte s a s. Och du har startat om webserver efter ändringarna?

 

Fixade ett stavfel i inlägget ovanför, om det kan vara det. Sista länken där slutade på “.devi” för jag hade missat mellanslaget. Så http://projekt1.dev skall det vara, och inte http://projekt1.devi ...eller har du eget/annat namn där?

Länk till kommentar
Dela på andra webbplatser

Den hittar inte till hemsidan när jag försöker surfa till den.

 

Vhosyfilen ser ut såhär

# VHostfil för olika projekt
#

#============
#    localdev
#============
<VirtualHost *:80>
    DocumentRoot /Users/johanwiberg/Sites/training
    ServerName training.dev
    ServerAlias www.training.dev

    ServerSignature OFF
    ServerTokens Minimal

    ErrorLog /Users/johanwiberg/Sites/training/error_log
    CustomLog /Users/johanwiberg/Sites/training/error_log common

    <Directory "/Users/johanwiberg/Sites/training">
        # Här kan du lägga saker som som du har i htaccess-filen sen

        Options -Indexes
        AllowOverride All
        Order deny,allow
        Deny from all
        Allow from 127.0.0.1
    </Directory>
</VirtualHost>

Och i min hostfil har jag gjort följande

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost
fe80::1%lo0     localhost

127.0.0.1       training.dev

Pingar jag training.dev får jag 127.0.0.1 som svar....

Länk till kommentar
Dela på andra webbplatser

Ja, att pinga den adressen returnerar 127... eftersom det är det som står i hosts. Men är webservern igång? Är den av, så får man alltid som svar att sidan/servern kan inte hittas.

Fr o m ML så plockades pref-pane'n bort för att starta servern så man får starta/stoppa/starta om i terminalen.

sudo apachectl start
sudo apachectl stop
sudo apachectl restart


Innan kan du prova först:

sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist

Är den filen redan laddad, så säger den till om det...


Det finns ett 3'parts-tillägg här du kan prova med, som erätter det som togs bort.

http://clickontyler.com/blog/2012/02/web-sharing-mountain-lion/

Länk till kommentar
Dela på andra webbplatser

Det har inte skapats någon errorfil i min projektmapp. Och var hittar apache's egna error filer? Jag hittar inte dom.

Länk till kommentar
Dela på andra webbplatser

Det har inte skapats någon errorfil i min projektmapp. Och var hittar apache's egna error filer? Jag hittar inte dom.

Då är servern förmodligen inte igång. Prova med att bara gå till localhost och se om det funkar. http://localhost/ elle http://127.0.0.1/

 

Apache errorlog kan du läsa i programmet: Console (verktygsmappen)

 

Kan det vara så att du missat nåt i filen: httpd.conf? La du in de olika includes där ändringarna? ...dvs att din projekt.conf inte läses in.

Länk till kommentar
Dela på andra webbplatser

  • 2 weeks later...

Nej det stämmer nog att servern inte är igång. Jag får detta felmeddelandet i console

 

2014-10-06 14:23:23,936 com.apple.launchd[1]: (org.apache.httpd[398]) Exited with code: 1
2014-10-06 14:23:23,936 com.apple.launchd[1]: (org.apache.httpd) Throttling respawn: Will start in 10 seconds
Länk till kommentar
Dela på andra webbplatser

Nej det stämmer nog att servern inte är igång. Jag får detta felmeddelandet i console

Hur startar du servern? I tidigare versioner (=< Lion) startar du servern från systeminställningarna, annars (i Mountain Lion+) får du starta med terminalen, eller ta ner en “pref-pane”, som man kan starta servern med: http://clickontyler.com/blog/2012/02/web-sharing-mountain-lion/

 

Men för terminalen - prova med:

apachectl start

https://httpd.apache.org/docs/2.0/programs/apachectl.html#synopsis

 

 

Börja med att kolla så det funkar med en sida i server-rooten (innan du kollarmed virtualhost-sidor), så gå till http://localhost/ och kolla. Allt annat än en grå sida där det står att servern inte hittades visar att den är igång. :crossfingers:

 

- - -

 

Får du inte igång den så kanske du har felkonfigurerat/felstavat i någon fil.

 

I Terminal, kör:

apachectl configtest

Gjorde medvetet ett fel i min fil nu för att visa hur det ser ut:

[test@foobar] ~$ apachectl configtest
Syntax error on line 685 of /private/etc/apache2/httpd.conf:
Invalid command 'Extendedtatus', perhaps misspelled or defined by a module not included in the server configuration

# När det funkar...
[test@foobar] ~$ apachectl configtest
Syntax OK

Där ser man var och vilket fel som finns, både med filnamn och radnummer. Är smidigt då man lätt stirrar sig blind i filerna. :crossfingers:

 

- - -

 

Du kan också sen lägga till i httpd.conf ett par rader, så får/har du en statussida att kolla (som funkar när servern funkar). (»»»)

 

I slutet av filen: “/etc/apache2/httpd.conf”, lägg till:

# Server-status
ExtendedStatus On
<Location /status>
    SetHandler server-status

    Order Deny,Allow
    Deny from all
    Allow from localhost
</Location>

Sen kan du se den sidan från http://localhost/status Man ser lite tid-/minne-/cpu-förbrukning och sånt.

 

 

:excl: För varje liten ändring man gör (i serverfilerna), måste du starta om servern för att ändringarna skall börja gälla.

Länk till kommentar
Dela på andra webbplatser

Då verkar apache servern vara igång trots att det står off i pref pane.

 

Men när jag kör

apachectl configtest

Så får jag följande fel

Syntax error on line 13 of /private/etc/apache2/users/training.conf:
ServerTokens cannot occur within <VirtualHost> section

Men jag kan inte se att det är något fel i den filen som ser ut såhär


# VHostfil för olika projekt
#

#============
#    localdev
#============
<VirtualHost *:80>
DocumentRoot /Users/johanwiberg/Sites/training
ServerName training.dev
ServerAlias www.training.dev

ServerSignature OFF
ServerTokens Minimal

ErrorLog /Users/johanwiberg/Sites/training/error_log
CustomLog /Users/johanwiberg/Sites/training/error_log common

<Directory "/Users/johanwiberg/Sites/training">
# Här kan du lägga saker som som du har i htaccess-filen sen

Options -Indexes
AllowOverride All
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Directory>
</VirtualHost>
Länk till kommentar
Dela på andra webbplatser

Rad 13... Är väl någon av:

ServerSignature OFF
ServerTokens Minimal

Det är väl OFF som skall vara Off. För ServerTokens - prova med någon av de andra. T ex Prod. (»»»)

ServerSignature Off
ServerTokens Prod

:crossfingers:

Länk till kommentar
Dela på andra webbplatser

Jag tog bort den vhost filen jag gjort som jag fick ett felmeddelande på och istället lade dit en ny med endast detta i och då hoppade apache servern igång.

<Directory "/Users/johanwiberg/Sites/">
Options Indexes MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>

Vad kan det varit för fel i första filen? Det hade vart trevligt att kunna ha lite kortare namn på sidorna lokalt.

Länk till kommentar
Dela på andra webbplatser

Jag tog bort den vhost filen jag gjort som jag fick ett felmeddelande på och istället lade dit en ny med endast detta i och då hoppade apache servern igång.

<Directory "/Users/johanwiberg/Sites/">
Options Indexes MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
Vad kan det varit för fel i första filen? Det hade vart trevligt att kunna ha lite kortare namn på sidorna lokalt.

 

Har inte filen framför mig, men av texten du kopierade in så är det de raderna jag skrev ovan som orakade felet. Jag tror mest op den med: OFF, som skall vara: Off. Efter den ändringen får dy starta/starta om servern för att den skall gälla.

 

 

Den ändringen du gjorde nu har ingenting med vhost att göra alls - är bara ett Directory-direktiv, just för den foldern. adressen dit blir: http://localhost/~johanwiberg

 

Men om du bara skall ha sidorna som test bör du ändra: “Allow from all” till “Allow from localhost” eller “Allow from 127.0.0.1”, så är det bara du på din dator som kan se sidan/sidorna.

 

- - -

 

Men tillbaka till din vhost... Prova med denna:

# VHostfil för olika projekt
#

#============
#    localdev
#============
<VirtualHost *:80>
	DocumentRoot /Users/johanwiberg/Sites/training
	ServerName training.dev
	ServerAlias www.training.dev

	ServerSignature Off
	ServerTokens Prod

	ErrorLog /Users/johanwiberg/Sites/training/error_log
	CustomLog /Users/johanwiberg/Sites/training/error_log common

	<Directory "/Users/johanwiberg/Sites/training">
		Options -Indexes
		AllowOverride All
		Order deny,allow
		Deny from all
		Allow from 127.0.0.1
	</Directory>
</VirtualHost>

När du ändrat och sparat, starta om servern... Kolla om syntaxen är ok.

apachectl configtest

Eller om du startar om med i Systeminställningarna.

 

Funkar det inte, så prova ta bort de 2 raderna med ServerSignature/ServerTokens... Man får testa sig fram lite och ta bort/lägga till tils det blir bra. Testfunktionen visar ju vilka raden som det berör.

 

Fördelen med en vhost-sida är att du får en egen root (/). Annars om du kör som vanligt och har ett script som utgår från /, så är ju det eg /Library/WebServer/Documents/

Länk till kommentar
Dela på andra webbplatser

Nu börjar vi komma på banan. Jag tog bort dom två raderna ServerSignature/ServerTokens och då fick jag syntaxen ok.

 

Då skall jag bara få rätt på hosts filen så jag kan surfa till training.dev.

Jag har lagt in

127.0.0.1       training.dev

i hosts filen. Skall inte det räcka?

Länk till kommentar
Dela på andra webbplatser

Nu börjar vi komma på banan. Jag tog bort dom två raderna ServerSignature/ServerTokens och då fick jag syntaxen ok.

 

Då skall jag bara få rätt på hosts filen så jag kan surfa till training.dev.

Jag har lagt in

127.0.0.1       training.dev
i hosts filen. Skall inte det räcka?

 

:yeahbaby:

Ja, det skall räcka. Bara det matchar det som står i vhost'en: “ServerName training.dev”

Länk till kommentar
Dela på andra webbplatser

Så ja nu funkar allt :)

 

Tack för all hjälp

Länk till kommentar
Dela på andra webbplatser

Nu körde jag självklart fast igen. Allt fungerar med Apache, mysql och phpadmin som jag installerat.

Har även kört igång en wordpressinstallation som fungerar kanon.

 

Men inställningar av virtuell host, jag får en till att fungera men om jag vill ha site1.com till en mapp och site2.com till en annan mapp då får jag inte det att fungera.

Hur gör man då?

Länk till kommentar
Dela på andra webbplatser

Nu körde jag självklart fast igen. Allt fungerar med Apache, mysql och phpadmin som jag installerat.

Har även kört igång en wordpressinstallation som fungerar kanon.

 

Men inställningar av virtuell host, jag får en till att fungera men om jag vill ha site1.com till en mapp och site2.com till en annan mapp då får jag inte det att fungera.

Hur gör man då?

Ja, det är lite pilligt innan man ittar ett bra system man vill ha... :) De kan bli så att om man skrivit fel i en vehost, så hopar den till nästa istället. Men det är i princip bara att duplicera all man har - lägga allt i egna mappar, och göra en ny vhost fil för vara... Är det inte allt för många sidor så kan man såklart ha alla i en och samma fil, men det underlättar att ha en för varje site. Och du hade väl i httpd.conf, en include på en “../*.conf”?

 

Hur(/var) har du lagt PMA? Som mapp i en site, eller som egen?

 

- - -

 

Med risk för lite pill... Men skall du ha flera olika site och köra som egna vhost'ar, överväg att ha och se över en bra/bättre struktur. Lite mer som du kanske skulle ha hos en riktig host. Dvs med en public mapp i din site's mapp, så kan man ha spillfiler, logfiler och sånt ligga utanför public sen med PMA som egen site kan man lägga in ett alias så du lätt kommer åt den från alla sidor med samma adress.

 

Om du har allt i ~/Sites, så blir mappstrukturen lite såhär då (exempel).

~/Sites
  training.dev/
	error_log
  	filer/
  	public/
  	  index.php

  foo.dev/
	error_log
  	filer/
  	public/
  	  index.php

  bar.dev/
	error_log
  	filer/
  	public/
  	  index.php

  pma.dev/
	error_log
  	filer/
  	public/
  	  index.php

“filer/”, som i en mapp för spillfiler, backup's osv

 

Då kan du i varje vhost sen (utom för pma) lägga till:

	<IfModule alias_module>
		Alias /pma /Users/johanwiberg/Sites/pma/public
	</IfModule>

Och då du kommer åt PMA, med adresserna: http://foo.dev/pma, http://bar.dev/pma osv. Dvs direkt i varje projektsite du har.

 

Här är en exempelfil... Dela upp den i 1 fil per site och lägg varje i den foldern som skall snappa upp de olika vhostfilerna.

jw_exempel.txt

 

 

Lägg till i “/etc/hosts”, en rad för varje:

# training.dev
127.0.0.1	training.dev

# training.dev
127.0.0.1	foo.dev

# training.dev
127.0.0.1	bar.dev

# pma.dev
127.0.0.1	pma.dev

osv...

Sen, starta om servern... Allt man ändrar i Apachefilerna kräver omstart för att du skall kunna se dem.

 

 

Det finns en prefpane för hosts som är rätt smidig att ha, om man inte vill editera filen för hand. http://www.macupdate.com/app/mac/40003/hosts

Länk till kommentar
Dela på andra webbplatser

Ja den strukturen under Sites har jag börjat med. Och även PMA ligger som en egen mapp.

 

OK, så jag skall lägga vhost filerna i Sites/training.dev/public och SItes/foo.dev/public osv ?

Länk till kommentar
Dela på andra webbplatser

OK, så jag skall lägga vhost filerna i Sites/training.dev/public och SItes/foo.dev/public osv ?

Själva vhostfilerna (inställningsfilen/apachefilen), lägger du ju i serverfoldern - den du spec'at i httpd.conf. T ex:

# Virtual hosts
Include /private/etc/apache2/extra/httpd-vhosts.conf
Include /private/etc/apache2/users/*.conf

Den andra raden där är den du lagt till själv, så att den skall snappa upp varje fil man lägger där. Är det sm är så bra att ha 1 fil till varje sida. Och de är väl så du har. Du skrev det innan ia f: (/private/etc/apache2/users/training.conf)

 

I “public” lägger du själva sidan. Och foldern “traning.dev/” blir ju bara som ett slags skal till den, där man kan lägga saker som man inte kommer åt från sidan sen. Errorloggen, backup'er, anteckningar, dokumentation osv osv ...

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.



×
×
  • Skapa nytt...