Voit itse lisätä ja muuttaa sisältöä muokkaa-painikkeiden avulla
Ennen tallennusta suositellaan ottamaan kopio muokkausruudusta (ctrl-a -> ctrl-c)
Olet itse vastuussa tämän teoksen käytöstä aiheutuvista vahingoista Lue lisää.
Apache
Yleistä[muokkaa]
Pieniä vinkkejä[muokkaa]
- Apache-version tarkastaminen
- httpd -v
Asennus[muokkaa]
Linux[muokkaa]
- sudo apt-get update
- sudo apt install libxml2-utils
- sudo passwd ubuntu
- sudo usermod -aG sudo ubuntu Asetetaan oikeus sudo-komentoihin
- sudo apt update
- sudo apt -y install apache2
- sudo systemctl restart apache2
- sudo iptables -I INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
- sudo netfilter-persistent save
- sudo apt install curl
- curl localhost --> pitäisi näkyä html-koodia
- http://localhost tai http://127.0.0.1 tai http://IP-osoite --> pitäisi näkyä Apache2 Ubuntu Default Page.
- Tulostuvan sivun sijainti /var/www/html/index.html
Localhost-hakemiston muuttaminen
- Hakemistot kannatta perustaa oletushakemiston /var/www/html alihakemistoiksi. Html-hakemistossa ja alihakemistoissa olevien tiedostojen käyttäjät voivat olla tällöin esim. ubuntu:ubuntu tai oma käyttäjätunnus.
- Jos /home/käyttäjätunnus tai sen alihakemistoista halutaan tehdä localhost-hakemisto, www-data:www-data -oikeus täytyy antaa käyttäjätunnus-hakemistolle ja sen alihakemistoille sekä kaikille tiedostoille. Tällöin käyttäjätunnus-hakemiston muihin hakemistoihin, jotka ovat esimerkiksi Ubuntun Documents, ei enää ole suoraan pääsyä.
- Jos localhost-hakemisto halutaan kuitenkin muuttaa esimerkiksi hakemistoon /home/käyttäjätunnus/rantapallo:
- sudo nano /etc/apache2/sites-available/000-default.conf
- DocumentRoot /home/käyttäjätunnus/rantapallo
- sudo nano /etc/apache2/apache2.conf
- <Directory /home/käyttäjätunnus/>
- sudo systemctl restart apache2
- mkdir /home/käyttäjätunnus/rantapallo
- cp /var/www/html/index.html /home/käyttäjätunnus/rantapallo
- sudo chown -R www-data:www-data /home/käyttäjätunnus -R muuttaa käyttäjätunnushakemiston ja sen alihakemistot käyttäjälle ja ryhmälle www-data:www-data
- Tarvittaessa www-data -käyttäjän olemassaolo tarkistetaan getent passwd www-data (tuloksena käyttäjätiedot) tai id -u www-data && id -g www-data (tuloksena tunnus) Ja tarvittaessa käyttäjä luodaan komennolla: sudo useradd -r -s /usr/sbin/nologin -d /var/www www-data
- sudo chmod -R 755 /home/käyttäjätunnus
- http://localhost
- Virhe: Selain ilmoittaa, ettei ole oikeutta nähdä tiedostoa.
- Tarkistetaan tiedosto: sudo nano /etc/hosts
- 127.0.0.1 localhost ja esim. 127.0.1.1 ?tietokoneen-nimi?
- Katsotaan Apachen lokitiedosto: nano /var/log/apache2/error.log
- Tarkistetaan tiedosto: sudo nano /etc/hosts
Apache poistaminen
- sudo apt remove apache2
- sudo apt purge apache2
macOS[muokkaa]
Apache on esiasennettu macOS-käyttöjärjestelmään, esimerkiksi Sequoia. Esiasennus ei ole välttämättä ajantasainen. Usein asennetaan asennusohjelma Homebrew, jolla voidaan asentaa ja päivittää viimeisin Apache-versio. Tällöin Apache asettuu Homebrew:n kansioon eikä ole sama kuin macOS-käyttöjärjestelmään asennettu.
- Vaihtoehtoisesti voi Apachen sijaan käyttää Nginx, joka on asennettava. Kannattaa verrata niiden ominaisuuksia. Ks. esim. Install Nginx & Multiple PHP Versions on macOS 15 Sequoia.
- Pikavinkit:
- Virheloki: cat /var/log/apache2/error_log
Salasana on oman käyttäjätunnuksen salasana. Kertaalleen käynnistettyä ei tarvitse uudestaan käynnistää vaikka tietokone sammutetaan. Käynnistyminen saattaa kestää jonkin aikaa, jolloin tulee virheilmoituksia kuten 'Safari can't open the page "localhost" because Safari can't connect to the server "localhost".'
Apachen käynnistys: sudo apachectl start Uuudelleenkäynnistys kun apache on valmis: sudo apachectl restart Uudelleenkäynnistys välittömästi: sudo apachectl -k restart Pois päältä: sudo apachectl stop Testaus: localhost (anna selaimen hakuriviille, niin tulostuu: It works!) Php.ini tiedoston tarkistus: sudo apachectl -t Versionumero: httpd -v Säätö: httpd.conf -tiedosto Virheiden etsintä: sudo apachectl configtest
- Html, php ym. -sivujen kotihakemisto on joko käyttäjäkohtainen tai järjestelmäkohtainen. Ilman mitään toimenpiteitä tulostuva It works! -sivu on järjestelmäkohtainen ja se löytyy hakemistosta Macintosh HD/Library/WebServer/Documents/index.html.en mutta lähtökohtaisesti hakemistoon ei ole kirjoitusoikeuksia. Seuraavaksi kannattaa asentaa käyttäjäkohtainen Sites-hakemisto.
Käyttäjäkohtaisen Sites-hakemiston asentaminen[muokkaa]
Tämä ohje suorittaa komennolla localhost eli http://localhost tiedostoja, jotka ovat /käyttäjänimi/Sites -hakemistossa eli hakemistossa ~/Sites
macOS Sequoia (11/2024)
- Merkittävin muutos aiempaan Catalinan asennusohjeeseen on php-ohjelmointikielen esiasennuksen poistuminen macOS 12 -versiosta alkaen.
- nano -editorin ohje: Tallennus ja poistuminen ctrl-x ja Y ja jos tehty muutoksia tai uusi tiedosto, vielä enter. Pelkkä tallennus ctrl-o ja enter. Ctrl-w etsii ja kun painat ctrl-w ja vain enter, siirtyy seuraavaan aikaisemmin haettuun kohtaan samalla hakusanalla.
- Luo Sites -niminen hakemisto Finderissa oman käyttäjätunnuksen kotihakemiston juureen Macintosh HD/Käyttäjät/käyttäjänimesi/Sites tai pääteohjelmalla mkdir ~/Sites
- Lisää hakemistoon index.html -niminen tiedosto testausta varten: echo "<h1>Tulostuu omasta Sites-hakemistosta</h1>" > ~/Sites/index.html
- Katso Finderissa sivupalkista talokuvakkeen kohdalta millä käyttäjänimellä olet kirjautunut tai pääteohjelmassa komennolla whoami ja käytä kyseistä käyttäjänimeä seuraavassa.
- Ota kopiot muutettavista tiedostoista:
- cp /etc/apache2/httpd.conf ~/Sites
- cp /etc/apache2/extra/httpd-userdir.conf ~/Sites
- sudo nano /etc/apache2/httpd.conf
- Poista seuraavista risuaidat:
- LoadModule userdir_module libexec/apache2/mod_userdir.so
- Include /private/etc/apache2/extra/httpd-userdir.conf
- Jos haluat ottaa käyttöön Perl-ohjelmointikielen poista myös risuaita LoadModule perl_module libexec/apache2/mod_perl.so
- Poista seuraavista risuaidat:
- sudo nano /etc/apache2/extra/httpd-userdir.conf
- Poista risuaita riviltä:
- Include /private/etc/apache2/users/*.conf
- Poista risuaita riviltä:
- sudo nano /etc/apache2/users/käyttajanimi.conf
- Lisää seuraavat rivit. Jos otit Perlin käyttöön, poista risuaita rivin edestä.
<Directory "/Users/<your short user name>/Sites/"> AddLanguage en .en AddHandler perl-script .pl #PerlHandler ModPerl::Registry Options Indexes MultiViews FollowSymLinks ExecCGI AllowOverride None Require host localhost </Directory>
- Myönnä Apache-palvelimelle pääsyoikeus omaan Sites-hakemistoon ja sen alihakemistoihin:
- chmod +a "_www allow execute" ~
- Testaa edelliset muutokset, tulos pitäisi olla: Syntax OK
- apachectl configtest
- sudo apachectl graceful
- Anna selaimessa http://localhost/~käyttäjänimi/ ja pitäisi tulostua oman Sites-hakemiston index.html -tiedoston sisältö. Vastaavasti pelkkä localhost tulostaa järjestelmäkohtaisen It works!
- Hakemistoon voi asentaa esim. ohjelman MediaWiki joka käynnistetään localhost/mediawiki Katso myös aiheeseen liittyvä kohta MediaWiki#Collection
- Tarvittaessa asetetaan käyttäjänimi.conf -tiedoston käyttöoikeus: sudo chmod 644 /etc/apache2/users/käyttäjänimi.conf
- Tarvittaessa asetetaan oikeat kirjoitusoikeudet käyttäjän Sites-hakemistolle.
- sudo chmod -R a+w ~/Sites
- tai alihakemistokohtaisesti: sudo chmod -R a+w ~/Sites/alihakemisto
macOS Catalina (12/2021)
- nano -editorissa tallennus ja poistuminen ctrl-x ja Y ja uuden tiedoston ollessa kyseessä enter. Pelkkä tallennus ctrl-o ja enter. Uutta tiedostoa luotaessa on lisäksi painettava Y-kirjaimen jälkeen enter. Jos et ole tehnyt muutoksia ctrl-x poistuu suoraan. Ctrl-w etsii ja kun painat ctrl-w ja vain enter se siirtyy seuraavaan aikaisemmin haettuun kohtaan samalla hakusanalla.
- Luo Sites-hakemisto Finderissa Macintosh HD/Käyttäjät/käyttäjänimesi/Sites tai pääteohjelmalla mkdir ~/Sites
- Lisää sinne index.html testausta varten: echo "<h1>Tulostuu omasta Sites-hakemistosta</h1>" > ~/Sites/index.html
- Katso Finderissa sivupalkista talokuvakkeen kohdalta millä käyttäjänimellä olet kirjautunut ja käytä sitä seuraavassa. Tai pääteohjelmassa komennolla whoami
- sudo nano /etc/apache2/httpd.conf
- Poista #-merkit seuraavien edestä ja tallenna tiedosto:
LoadModule php7_module libexec/apache2/libphp7.so LoadModule userdir_module libexec/apache2/mod_userdir.so Include /private/etc/apache2/extra/httpd-userdir.conf
- Lisää #-merkki kohtaan <Directory "/Library/WebServer/Documents"> ja alempana #Require all granted ja lisää sen alle rivi Require all Denied
- Jos asennus ei toimi, kokeile poista myös seuravista:
LoadModule authz_core_module libexec/apache2/mod_authz_core.so LoadModule authz_host_module libexec/apache2/mod_authz_host.so LoadModule include_module libexec/apache2/mod_include.so LoadModule rewrite_module libexec/apache2/mod_rewrite.so
- sudo nano /etc/apache2/extra/httpd-userdir.conf
- Poista #-merkki riviltä Include /private/etc/apache2/users/*.conf
- sudo nano /etc/apache2/users/käyttäjänimi.conf
- Lisää rivit ja tallenna.
<Directory "/Users/käyttäjänimi/Sites/"> AddLanguage en .en AllowOverride All Options Indexes MultiViews FollowSymLinks AllowOverride All Require local </Directory>
- Aseta tiedoston käyttöoikeus: sudo chmod 644 /etc/apache2/users/käyttäjänimi.conf
- Jos Apache on jo aikaisemmin käynnistetty, käynnistä uudelleen: sudo apachectl restart
- Anna selaimessa: http://localhost/~käyttäjänimi/
- Hakemistoon voi asentaa nyt esim. ohjelman mediawiki joka käynnistetään localhost/mediawiki Katso myös aiheeseen liittyvä kohta MediaWiki#Collection
- Asetetaan oikeat kirjoitusoikeudet hakemistoon
- sudo chmod -R a+w ~/Sites
- Tai alihakemistokohtaisesti: sudo chmod -R a+w ~/Sites/alihakemisto
Sierra (4/2017)
- Tämä ohje suorittaa komennolla http://localhost tiedostoja, jotka ovat /käyttäjänimesi/Sites -hakemistossa eli hakemistossa ~/Sites
- Aivan alkup lähde (ei enää Sierra) https://getgrav.org/blog/mac-os-x-apache-setup-multiple-php-versions
- Selvitä php-versio: php -v
- Luo Sites-hakemisto Finderissa Macintosh HD/Käyttäjät/käyttäjänimesi/Sites tai pääteohjelmalla mkdir ~/Sites
- Lisää sinne index.html testausta varten: echo "<h1>Tulostuu omasta Sites-hakemistosta</h1>" > ~/Sites/index.html
- Katso Finderissa sivupalkista talokuvakkeen kohdalta millä käyttäjänimellä olet kirjautunut ja käytä seuraavassa sitä.
- sudo nano /etc/apache2/httpd.conf
- nano -editorissa ctrl-w etsii ja kun painat ctrl-w ja vain enter se siirtyy seuraavaan aikaisemmin haettuun kohtaan samalla hakusanalla. Tallennus ja poistuminen ctrl-x ja Y. Jos et ole tehnyt muutoksia ctrl-x poistuu suoraan.
- Hae ctrl-w hakusanalla: DocumentRoot
- DocumentRoot "/Library/WebServer/Documents" muunna DocumentRoot "/Users/käyttäjänimi/Sites"
- Muunna <Directory "/Users/käyttäjänimi/Sites">
- Samassa <Directory> -lohkossa muunna AllowOverride All
- Muunna käyttäjä ja ryhmä, jotka ovat selvästi alempana tiedosto kuin edellä olevat: User käyttäjänimi ja Group staff
- Hae ctrl-w hakusanalla: ServerName
- Poista ServerName local_server:80 edestä risuaita. Muutoin saat virheilmoituksia AH00557: httpd: apr_sockaddr_info_get() failed for x.local ja AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
- Jos PHP 7.0 lisää vielä kohdat jotka tämän ohjeen alla otsikolla "Jos PHP 7.0 lisää vielä"
- ctrl-x ja Y ja enter
- sudo apachectl -k restart
- http://localhost ja pitäisi tulostua mitä index.html:ssä, mutta välttämättä hakemistossa olevat ohjelmat eivät toimi, vaan saat antaessasi localhost/ohjelmannimi virheilmoituksen "Forbidden 403, You don’t have permission to access /filename/ on this server". Tee seuraavat muutokset:
- Tarkista mikä Apache-versio on käytössä: httpd -v
- ls /etc/apache2/users/ Tarkista löytyykö tiedosto: käyttäjänimi.conf
- Jos ei löydy: sudo nano /etc/apache2/users/käyttäjänimesi.conf ja anna salasana tai jos löytyy niin avaa tiedosto samalla tavoin
- El Capitan, Yosemite, Mavericks: Liitä seuraava koodi tiedostoon JOS Apache 2.4 ja paina ctrl-x
<Directory "/Users/käyttäjänimesi/Sites/"> AllowOverride All Options Indexes MultiViews FollowSymLinks Require all granted </Directory>
- Liitä seuraava koodi tiedostoon JOS Apache 2.2 ja paina ctrl-x
<Directory "/Users/käyttäjänimesi/Sites/"> Options Indexes MultiViews AllowOverride All Order allow,deny Allow from all </Directory>
- Tarkista käyttöoikeus komennolla: ls -l /etc/apache2/users/käyttäjänimesi.conf joka pitäisi olla: -rw-r--r-- 1 root wheel 133 Aug 13 2015 käyttäjänimi.conf
- Jos ei ole: sudo chmod 644 /etc/apache2/users/käyttäjänimi.conf
- Tarkista että seuraavien rivien edessä ei ole # -merkkiä. Hae ctrl-w -komennolla rivejä kirjoittamalla niiden alkuosa. Useamman edessä on ainakin El Capitanissa #-merkki. Poistu ctrl-x ja paina y ja enter.
sudo nano /etc/apache2/httpd.conf LoadModule authz_host_module libexec/apache2/mod_authz_host.so LoadModule authz_core_module libexec/apache2/mod_authz_core.so LoadModule userdir_module libexec/apache2/mod_userdir.so LoadModule php5_module libexec/apache2/libphp5.so Include /private/etc/apache2/extra/httpd-userdir.conf sudo nano /etc/apache2/extra/httpd-userdir.conf Include /private/etc/apache2/users/*.conf
- Jos Apache on jo aikaisemmin käynnistetty, käynnistä uudelleen: sudo apachectl restart
- Kyseiseen hakemistoon voit asentaa nyt esim. ohjelman mediawiki joka käynnistetään localhost/mediawiki
- Katso myös aiheeseen liittyvä kohta MediaWiki#Collection
- Jos PHP 7.0 lisää vielä:
- <FilesMatch "^\.([Hh][Tt]|[Dd][Ss]_[Ss])"> Require all denied </FilesMatch> -kohdan alle rivit:
<FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch>
- ja etsi <IfModule dir_module> DirectoryIndex index.html </IfModule> ja lisää index.php riville, joka näyttää sitten seuraavalta: DirectoryIndex index.php index.html
- Jos saat virheilmoituksen "Forbidden 403, You don’t have permission to access /filename/ on this server" kun yrität avata oman käyttäjähakemiston tiedostoja, katso että käyttäjänimesi.conf tiedostossa on oikea apache-version mukainen koodi ja #-merkkejä ei ole rivien edellä kuten edellä on mainittu. (alkuperäinen ohje
- Tee muutokset vaihtoehdon 2 kohdasta "Tarkista mikä Apache..." alkaen.
- Sivu ei avaudu:
- Jos http://localhost -komennolla selaimessa ei avaudu, tarkista että /etc/hosts -tiedosto sisältää 127.0.0.1 localhost -rivin
- Tarkista että #-merkki on rivin LoadModule php5_module libexec/apache2/libphp5.so edellä tiedostossa /etc/apache2/httpd.conf
- Ei toimi:
- Ehkä vaatii muutoksia httpd.conf -tiedostoon, joita on kerrottu vaihtoehto 2:ssa
.htaccess ylikirjoitus ja URL-uudelleenkirjoituksen salliminen[muokkaa]
Jos käytät kuitenkin Macintosh HD/Kirjasto/WebServer/Documents/ -hakemistossa olevaa, kts. ohje http://coolestguidesontheplanet.com/get-apache-mysql-php-phpmyadmin-working-osx-10-10-yosemite/
Apache, User, Group[muokkaa]
- Todennäköistä on että käyttäessäsi esimerkiksi MediaWiki-ohjelman tiedostotallennusta, Apache tallentaa tiedostot User _www ja Group staff tai Group _www. Voit muuttaa tätä asetusta esimerkiksi että tallennus tapahtuu omalla käyttäjätunnuksellasi kuten: User omamackäyttäjätunnus ja Group staff. Jos haluat taas root -tunnuksen niin User root ja Group wheel Muutos vaikuttaa ilmeisesti vain tästä hetkestä eteenpäin eli olemassaoleviin hakemisto ja tiedosto-oikeuksiin se ei vaikuta.
cd /private/etc/apache2/ sudo vi httpd.conf anna salasana a Tämä a-kirjain avaa syöttötoiminnon vi-editorissa. Etsi kohta, jossa on User ja Group. User omakäyttäjänimi Group staff esc :wq Paina esc kaksoispiste w ja q perätysten niin tiedot tallennetaan ja poistutaan editorista. sudo apachectl graceful Käynnistetään Apache uudestaan graceful toiminnolla.
- Jos olet päivittänyt Mavericksiin Lionista tai Yosemiteen Maverickista muodostuu uusi httpd.conf -tiedosto. Vanha on ehkä samassa kansiossa nimellä httpd.conf.pre-update
Ongelmia[muokkaa]
- Sivunpäivitysongelma OSX Yosemite. Tallennat esimerkiksi xcode:lla muokkaamaasi tiedoston cmd-s ja päivität saman tien Safarissa tai Firefoxissa sivun, johon tiedosto vaikuttaa (cmd-r). Sivu ei päivity kuin vasta noin minuutin kuluttua. Firefoxissa välimuisti on otettu pois käytöstä (siellä mutkan takana about.configissa). Saattaa olla kyse Apache-ongelmasta???
Komentoja[muokkaa]
- Uudelleenkäynnistys: /usr/sbin/apachectl restart
- Sammutus: ./usr/sbin/apachectl stop
- Käynnistys: ./usr/sbin/apachectl start
- Levytila: df -h
- Palvelimen lokitiedostot: cd /var/log
Apache Tomcat[muokkaa]
Apache Tomcat 7[muokkaa]
Katso sivu Cyclos
Apache Tomcat 6[muokkaa]
- Installing Apache Tomcat 6 on Mac OS X Leopard http://www.malisphoto.com/tips/tomcatonosx.html
BASH[muokkaa]
Lähde: http://www.macdevcenter.com/pub/a/mac/2004/02/24/bash.html
- Ensin asetetaan JAVA_HOME ympäristömuuttuja kohdalleen.
- Tietokone suorittaa tietyt komennot jotka on laitettu joko käyttäjän hakemistoon tiedostoon .profile käynnistettäessä pääteohjelma tai jos laitetaan tiedostoon /etc/profile niin suorittaa kaikille käyttäjille
- ~/.profile tiedosto pitää mahdollisesti luoda, sitä ei ole valmiina
- /etc/profile löytyy siis /etc hakemistosta
- Tomcat 6 varten lisää profile -tiedostoon /etc hakemistossa:
- # environment variables
- export JAVA_HOME=/Library/Java/Home
- Tallenna ctrl-x, Yes, Enter
- Poistu pääteohjelmasta ja Lopeta se eli sammuta!
- Käynnistä uudestaan ja syötä komento env
- Tulosteessa pitäisi nyt näkyä JAVA_HOME=/Library/Java/Home
Asennus jatkuu[muokkaa]
- Siirry sivulle http://tomcat.apache.org/download-60.cgi
- Lataa uusin 6.0.x Core tar.gz -tiedosto
- Jatkossa sijoita komentoihin oikea tiedostonimi, tässä se on nyt 18
- Pääteohjelmassa:
- cd /Library
- mkdir Tomcat
- chown root Tomcat
- chgrp admin Tomcat
- cd Tomcat
- Pura tiedosto Tiedostohaut hakemistosta tar -xvf ~/Downloads/apache-tomcat-6.0.18.tar
- Tee symbolinen linkki osoittamaan ln -s apache-tomcat-6.0.18 Home
- cd Home/conf
- nano tomcat-users.xml
- Lisää heti </tomcat-users> rivin yläpuolelle:
- <user username="administrator" password="salasanasi" roles="standard,manager,admin"/>
- Tallenna Ctrl-X, Yes, Enter
- cd ../bin
- rm *.bat *.exe
- ./startup.sh
- Kirjoita internetselaimessasi osoite http://localhost:8080/ ja Tomcat nettisivu pitäisi aueta
Sammuttaminen ja käynnistäminen[muokkaa]
- Hakemistossa /Library/Tomcat/apache-tomcat-6.0.x/bin
- Sammuta komennolla ./shutdown.sh
- Käynnistä komennola ./startup.sh
Suojaaminen tietokoneen ulkopuoliselta käytöltä[muokkaa]
- Siirry Tomcat-hakemistoon /conf
- nano server.xml
- Lisää rivin <Engine name="Catalina" defaultHost="localhost"> jälkeen
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127.0.0.1,0:0:0:0:0:0:0:1%0,::1" />
- Tallenna Ctrl-X,Yes,Enter