Ubuntu 10 serverin asennus web-palvelimeksi

eero
Site Admin
Viestit: 329
Liittynyt: 07 Marras 2007 20:17

Ubuntu 10 serverin asennus web-palvelimeksi

Viesti Kirjoittaja eero »

Asennetaan Ubuntu 10.04 server.
Jätä kaikki palvelut pois.

Asennetaan gui

sudo aptitude update
sudo aptitude install gnome-core xinit


Bootataan kone ja kirjaudutaan sisään. Käynnistetään graaffinen liittymä komennolla startx

Laitetaan verkko kuntoon
sudo gedit/etc/network/interfaces

Koodi: Valitse kaikki

    auto eth0
    iface eth0 inet static
            address 192.168.1.100
            netmask 255.255.255.0
            network 192.168.1.0
            broadcast 192.168.1.255
            gateway 192.168.1.1
Laitetaan DNS kuntoon

sudo gedit /etc/resolv.conf

Koodi: Valitse kaikki

    192.168.1.2
    192.168.1.3
Voit myös haluta poistaa DHCP-määrityksen sudo apt-get remove dhcp-client

Käynnistetään verkko uusiksi sudo /etc/init.d/networking restart

Asennetaan synaptic

sudo apt-get install synaptic

Asennetaan samba ja graafinen hallinta samballe
Valitaan synaptic:sta samba, libpam-smbpass, gnome-system-tools ja system-config-samba

Muutosten jälkeen samba uudelleenkäynnistetään komennolla sudo service smbd restart

Asennetaan vielä päivitykset ja puuttuva suomen kielen paketti synaptic:lla

update-manager
language-pack-gnome-fi

Kännistetään kone uusiksi ja systeemi on valmis. Muista ajaa päivitykset.




Päätteessä:

sudo aptitude install apache2 php5 apache2.2-common libapache2-mod-auth-mysql php5-mysql mysql-server

MySQL salasanan vaihtaminen
Päätteessä:

mysqladmin -u root password oma_uusi_salasanasi

Nyt sinulla on asennettuna Apache, PHP ja MySQL. Laita sivut /var/www/ kansioon tai laita kansioon symbolinen linkki sivuillesi, ja muista tiedostojenoikeudet. Seuraavaksi sinun kannattaa seurata valinnaisia kohtia.

Sivut näkyviin vain tältä koneelta (Kehityskäyttö?)
Kirjoita päätteessä:

sudo gedit /etc/apache2/ports.conf

Vaihda rivi: "Listen 80" riviin: "Listen localhost:80"

GD tuki l. dynaamisten kuvien tuki
Päätteessä:

sudo aptitude install php5-gd

Mikäli UTF8:n aakkoset eivät kelpaa
niin päätteessä...

sudo gedit /etc/apache2/apache2.conf

Sieltä muuta rivi, vaikka seuraavan laiseksi

AddDefaultCharset ISO-8859-1

Lopuksi Apache:n ja MySQL:n uudelleenkäynnistys
Päätteessä:

sudo /etc/init.d/apache2 restart
sudo /etc/init.d/mysql restart


Mikäli MySQL eikä Apache ole käynnissä

sudo /etc/init.d/apache2 start
sudo /etc/init.d/mysql start


Huomioitavaa
MySQL:ssä on oma käyttäjä-kantansa, joten käyttäjät ja salasanat voivat olla erilaiset kuin linux-tileissä.

Vinkki
Kirjoita päätteessä

sudo a2enmod userdir

Tee omaan kotihakemistoosi, tai jokaisen käyttäjän kotihakemistoon hakemisto, jonka nimi on public_html.

esimerkiksi käyttäjälle user, hakemisto tehdään näin:

mkdir /home/user/public_html

Nyt public_html hakemiston sisältö näkyy apachessa osoitteessa http://localhost/~user
eero
Site Admin
Viestit: 329
Liittynyt: 07 Marras 2007 20:17

Salasanasuojaus

Viesti Kirjoittaja eero »

Voit suojata sivusi salasanasuojauksella. Salasanasuojatulle sivulle pyrkiminen avaa ruudulle nimi-salasana-ikkunan, josta eteenpäin pääsee vain oikeilla tunnuksilla.

Salasanasuojauksen saat käyttöösi luomalla .htaccess-tiedoston salattavaan hakemistoon. Lisäksi on luotava salasanatiedosto, jossa määritellään käyttäjätunnus sekä salasana, jolla sivuille pääsy sallitaan.

Salasanatiedosto luodaan htpasswd-komennolla ja se tallennetaan johonkin muuhun hakemistoon kuin www-palvelimen juurihakemistoon. Salasanasuojaus vaatii myös Apachen asetuksien muokkaamista.

Luodaan salasanasuojaus sivustolle ekasivu

1. Avaa Apachen asetukset komennolla:
sudo gedit /etc/apache2/sites-available/ekasivu

Vaihda AllowOverride-rivillä None-merkinnän tilalle AuthConfig
<Directory /var/www/ekasivu>
Options Indexes Includes FollowSymLinks MultiViews
AllowOverride AuthConfig
Order allow,deny
Allow from all
</Directory>

Käynnistä palvelin uudelleen komennolla:
sudo /etc/init.d/apache2 restart

Luo kotihakemistoosi htpasswd-tiedosto, jossa määritellään käyttäjätunnus ja salasana.

siirrytään hakemistoon /var
cd ..
cd /var

Seuraava komento luo salasanatiedoston /var-hakemistoon käyttäjätunnukselle testi ja pyytää antamaan käyttäjälle salasanan:
sudo htpasswd -c salasana testi (salasana on tiedoston nimi jossa salasanat ovat)

Tee .htaccess-tiedosto salattavaan hakemistoon eli tässä tapauksessa /var/www/ekasivu komennolla:
Siirrytään hakemistoon ekasivu
cd www/ekasivu
Luodaan .htaccess-tiedosto
sudo gedit .htaccess

Kirjoita tiedostoon seuraavat rivit:
AuthType Basic
AuthName "Salattu sivu"
AuthUserFile /var/salasana
Require user testi

AuthType Basic kertoo, että käytetään normaalia autentikointityyppiä. AuthName kertoo, mitä lukee salasanan kyselyikkunassa. Tämän tekstin tulee olla lainausmerkeissä. AuthUserFile kertoo .htpasswd-tiedoston sijainnin. Require user määrittelee käyttäjätunnuksen.

Kun tiedosto on tallennettu salattavaan hakemistoon, hakemisto ja kaikki sen alihakemistot on suojattu salasanalla. Huomaa, että .htaccess on piilotiedosto, joten nähdäksesi sen sinun on muutettava hakemiston näkymää valitsemalla Näytä | Näytä piilotiedostot.

Tarvittaessa Apachelle on annettava oikeudet .htpasswd-tiedostoon kotikansiossasi. Määrittele tiedoston omistajaksi www-data, mikä antaa oikeudet Apachelle.
eero
Site Admin
Viestit: 329
Liittynyt: 07 Marras 2007 20:17

Monta sivustoa

Viesti Kirjoittaja eero »

Virtuaalipalvelimilla voit ylläpitää useita nettisivustoja omalla tietokoneellasi. Voit esimerkiksi perustaa nettisaitit http://www.ekasivu.fi ja http://www.tokasivu.fi. Virtuaalipalvelimen saat käyttöösi luomalla asetustiedoston, jossa määrittelet virtuaalipalvelimen nimen sekä juurihakemiston. Asetustiedosto luodaan hakemistoon:
/etc/apache2/sites-available

Siirry oikeaan hakemistoon komennolla
cd /etc/apache2/sites-available

Luo asetustiedosto komennolla:
sudo gedit ekasivu

Korvaa merkkijono nettisaitti haluamallasi nimellä.

Kirjoita tiedostoon seuraavat rivit, joissa NameVirtualHost ja ServerName korvataan oman nettisivusi osoitteella. DocumentRoot viittaa hakemistoon, jossa nettisivusi sijaitsevat.

Koodi: Valitse kaikki

<VirtualHost *:80>
	ServerAdmin webmaster@localhost
	ServerName www.ekasivu.fi
	ServerAlias ekasivu.fi

	DocumentRoot /var/www/ekasivu
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory /var/www/ekasivu/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	</Directory>

	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	<Directory "/usr/lib/cgi-bin">
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	</Directory>

	ErrorLog /var/log/apache2/ekasivu_error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog /var/log/apache2/ekasivu_access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>
Tee toinen sivu
sudo gedit tokasivu

Koodi: Valitse kaikki

<VirtualHost *:80>
	ServerAdmin webmaster@localhost
	ServerName www.tokasivu.fi
	ServerAlias tokasivu.fi
	DocumentRoot /var/www/tokasivu
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory /var/www/tokasivu/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	</Directory>

	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	<Directory "/usr/lib/cgi-bin">
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	</Directory>

	ErrorLog /var/log/apache2/tokasivu_error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog /var/log/apache2/tokasivu_access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>
Ota virtuaalipalvelin käyttöösi komennolla:
sudo a2ensite ekasivu
sudo a2ensite tokasivu

4. Käynnistä palvelin uudelleen komennolla:
sudo /etc/init.d/apache2 restart

5. Virtuaalipalvelimen sammutus tapahtuu komennolla:
sudo a2dissite ekasivu
eero
Site Admin
Viestit: 329
Liittynyt: 07 Marras 2007 20:17

Muita tärkeitä vinkkejä

Viesti Kirjoittaja eero »

Sivun määrittäminen paikalliseksi

sudo gedit /etc/hosts

Lisää rivit: Näin kaikki löytyvät omalta koneelta
eero
Site Admin
Viestit: 329
Liittynyt: 07 Marras 2007 20:17

SSL-salaus

Viesti Kirjoittaja eero »

Tehdään ekasivu:sta salattu sivu. Sertifikaatti sijaitsee /etc/apache2/ssl-hakemistossa. Itse tiedosto hakemistossa /etc/apache2/sites-available/


Luo kansio /etc/apache2/ssl komennolla sudo mkdir /etc/apache2/ssl
Aseta omistajaksi root komennolla sudo chown root:root /etc/apache2/ssl


SERTIFIKAATTI

Aloitetaan luomalla sertifikaatti joka on voimassa halutun ajan.

Luo kotihakemistoon scripti ssl.sh ja kopioi koodi:
(muokkaa pem-tiedosto haluamaksesi)

Koodi: Valitse kaikki

    #!/bin/sh -e
    if [ "$1" != "--force" -a -f /etc/apache2/ssl/ekasivu.pem ]; then
       echo "/etc/apache2/ssl/ekasivu.pem exists!  Use \"$0 --force.\""
       exit 0
    fi
    if [ "$1" = "--force" ]; then
       shift
    fi     
    echo
    echo creating selfsigned certificate
    echo "replace it with one signed by a certification authority (CA)"
    echo
    echo enter your ServerName at the Common Name prompt
    echo
    echo If you want your certificate to expire after x days call this programm
    echo with "-days x"
    # use special .cnf, because with normal one no valid selfsigned
    # certificate is created
    export RANDFILE=/dev/random
    openssl req $@ -config ssleay.cnf \
       -new -x509 -nodes -out /etc/apache2/ssl/ekasivu.pem \
       -keyout /etc/apache2/ssl/ekasivu.pem -days 3650
    chmod 600 /etc/apache2/ssl/ekasivu.pem
    ln -sf /etc/apache2/ssl/ekasivu.pem \
    /etc/apache2/ssl/`/usr/bin/openssl \
    x509 -noout -hash < /etc/apache2/ssl/ekasivu.pem`.0
Anna tiedostolle suoritusoikeudet klikkaamalla hiiren oikealla, valitsemalla Ominaisuudet, valitsemalla Oikeudet ja laittamalla täppi kohtaan Salli tiedoston suoritus ohjelmana

Luo samaan hakemistoon tiedosto ssleay.cnf ja kopioi koodi:

Koodi: Valitse kaikki

    #
    # SSLeay example configuration file.
    #
    RANDFILE                = $ENV::HOME/.rnd
    [ req ]
    default_bits            = 1024
    default_keyfile         = privkey.pem
    distinguished_name      = req_distinguished_name
    [ req_distinguished_name ]
    countryName                     = Maan nimi
    countryName_default             = FI
    countryName_min                 = 2
    countryName_max                 = 2
    stateOrProvinceName             = Lääni
    stateOrProvinceName_default     = Varsinais-Suomi
    localityName                    = Kaupunki
    organizationName                = Organisaatio
    organizationName_max            = 64
    organizationalUnitName          = Yksikkö
    organizationalUnitName_max      = 64
    commonName                      = Sivuston nimi (Sama kuin osoite. Esim. www.ekasivu.fi)
    commonName_max                  = 64
    emailAddress                    = Sähköpostiosoite
    emailAddress_max                = 40
Aja koodi komennolla sudo ./ssl.sh

Vastaile tuleviin kysymyksiin.

Aktivoidaan SSL-moduuli

sudo a2enmod ssl

Lisätään ekasivulle portti 443

sudo gedit /etc/apache2/sites-available/ekasivu

Lisätään koodi:

Koodi: Valitse kaikki

NameVirtualHost *:443

<virtualhost *:443>
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/ekasivu.pem

	ServerAdmin webmaster@localhost
	ServerName www.ekasivu.fi
	ServerAlias ekasivu.fi

	DocumentRoot /var/www/ekasivu
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory /var/www/ekasivu/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride AuthConfig
		Order allow,deny
		allow from all
	</Directory>

	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	<Directory "/usr/lib/cgi-bin">
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	</Directory>

	ErrorLog /var/log/apache2/ekasivu_error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog /var/log/apache2/ekasivu_access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>
Aktivoidaan asetukset.

sudo a2ensite ekasivu

Lopuksi käynnistetään Apache uusiksi, jotta kaikki muutokset tulevat voimaan.

sudo /etc/init.d/apache2 restart

Nyt salaus pitäisi tulla käyttöön, kun sivuille mennään https-alkuisella osoitteella http:n sijaan.

Nyt käyttäjä pystyy valitsemaan käyttääkö hän salausta vai ei. Usein halutaan pakottaa käyttäjä käyttämään salattua yhteyttä. Se onnistuu Mod rewritella.

Aktoivoidaan taas oikea moduuli.

sudo a2enmod rewrite

Muokataan tiedostoa /etc/apache2/sites-available/ekasivu lisäämällä <VirtualHost *>-tagin sisään:

sudo gedit /etc/apache2/sites-available/ekasivu

RewriteEngine on
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^/salainen(.*)$ https://%{SERVER_NAME}/salainen$1 [L,R]
RewriteLog "/var/log/apache2/rewrite.log"
RewriteLogLevel 2

Nyt http://www.ekasivu.fi/salainen/ ohjautuu automaattisesti SSL-salattuun yhteyteen https://www.ekasivu.fi/salainen/. Jos haluat kaikki sivut SSL-salauksen alle voit jättää edelliseen hakemiston kohdalle pelkästään /:n. Eli jätä vain sana "salainen" pois.

Muutokset tulevat voimaan käynnistämällä Apache uusiksi.

sudo /etc/init.d/apache2 restart
eero
Site Admin
Viestit: 329
Liittynyt: 07 Marras 2007 20:17

FTP:N asennus

Viesti Kirjoittaja eero »

Voit myös tarvita FTP:tä. Hieno graafinen ftp-palvelin on PROFTPD

Valitse synaptic:sta proftpd-basic

Asennuksen jälkeen se löytyy Sovellukset -> Järjestelmätyökalut -> GADMIN-PROFTPD

Anna seuraavat tiedot:

Servers-välilehti:
  • Palvelimen nimi
    Palvelimen osoite
    Sertifikaatin salasana
Valitse alhaalla oleva Apply

Luo käyttäjiä Users-välilehdeltä
  • Anna käyttäjänimi ja salasana
    Määrittele kotihakemisto (voi olla esim /var/www/ekasivu)
Muut asetukset saat itse miettiä

Siinä kaikki. Muista tarkastaa että tila on Activated
eero
Site Admin
Viestit: 329
Liittynyt: 07 Marras 2007 20:17

Asennetaan phpmyadmin

Viesti Kirjoittaja eero »

Asennetaan phpmyadmin hallintaa varten. Näin voit luoda uusia tietokantoja.

Valitse Synaptic:sta phpmyadmin tai komentoriviltä sudo aptitude install phpmyadmin

Asennuksen jälkeen kirjaudu osoitteesta http://192.168.1.100/phpmyadmin
Vastaa Viestiin