NetBSD.SE Logotype
Meny
Välkommen till NetBSD.se

Sök bland pkgsrc/wip:Sök efter manual:
 


NetBSD med Apache2, PHP, MySQL och SSL
2004-12-07 19:38:28 inskickat av Mikael Höjdh

GuiderDetta är steg-för-steg instruktioner på hur man i NetBSD kan
sätta upp en webtjänst med PHP, MySQL och SSL. Givetvis är de
flesta momenten inte NetBSD-specifika.

Apache2

Installera Apache2
#cd /usr/pkgsrc/www/apache2
#make install distclean

Vi lägger till detta i /etc/rc.conf
apache=YES

Starta Apache
#apachectl start

Kolla att Apache ligger och lyssnar på förfrågningar, port 80 skall vara öppen.
#netstat -na | grep LISTEN

PHP

Vi skaffar PHP genom en modul till Apache. Den installerar förstås även själva PHP genom en dependency.
#cd /usr/pkgsrc/www/ap-php4
#make install distclean

Modulen hamnar under:
/usr/pkg/lib/httpd/mod_php4.so

Vi lägger till två rader i /usr/pkg/etc/httpd/httpd.conf

LoadModule php4_module lib/httpd/mod_php4.so
AddType application/x-httpd-php .php


Dessutom skall index.php läggas till i DirectoryIndex
DirectoryIndex index.html index.php

Vi skapar en testsida för php
/usr/pkg/share/httpd/htdocs/index.php

Den kan se ut så här:

phpinfo();


Starta om apache så att httpd.conf läses in på nytt
#apachectl restart

Vi surfar in lokalt och kollar. Om allt stämmer skall info om PHP skrivas ut, dvs att PHP fungerar som det ska.
#lynx 127.0.0.1


MySQL

Installera MySQL server
#cd /usr/pkgsrc/databases/mysql4-server/
#make install distclean

Lägg till i /etc/rc.conf
mysqld=YES

Vi använder oss av en av de fördefinierade konfigurationsfilerna för MySQL
cp /usr/pkg/share/examples/mysql/my-medium.cnf /etc/my.cnf

Editera my.cnf efter behov, eftersom jag tänker använda MySQL lokalt och inte ansluta till den via något nät så avkommenterar jag
skip-networking
Då kommer inte port 3306 att öppnas.

Vi kör igång MySQL
#/usr/pkg/etc/rc.d/mysqld start

Det första vi gör med MySQL är att köra:
#mysql_secure_installation

Du kommer då att bli ombedd att sätta root-lösenord för MySQL, annars är blankt lösenord default. Du kommer även att bli frågad hurvida lite fördefinerade saker skall tas bort, exempelvis användaren anonymous samt roots möjligheter att logga in över nätverket. (Vilket för övrigt inte skall vara möjligt om du avkommenterat skip-networking).

Dags att logga in i MySQL och skapa en första databas.
#mysql -u root -p
Skapa en databas och lägg in lite data:
mysql> create database mindatabas;
mysql> use mindatabas;
mysql> create table personer(
id_person INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
namn varchar(30) NOT NULL);


mysql> insert into personer(namn) VALUES('Kalle');
mysql> insert into personer(namn) VALUES('Lisa');
mysql> insert into personer(namn) VALUES('Pelle');


Vi skapar en användare till denna databas, i detta fall användaren mikael med lösenord itsasecret.
mysql> grant all privileges on mindatabas.* to 'mikael'@'localhost' identified by 'itsasecret';
mysql> quit;

Dags att komma åt databasen från PHP. Detta görs genom en modul till PHP.
#cd /usr/pkgsrc/databases/php4-mysql
#make install distclean

Lägg till detta i /usr/pkg/etc/php.ini
extension=mysql.so

Starta om apache
#apachectl restart

Vi skapar en testsida: /usr/pkg/share/httpd/htdocs/connect.php

$dbconn = mysql_connect("localhost","mikael","itsasecret");
mysql_select_db("mindatabas");
$result = mysql_query("SELECT * FROM personer");
while( $row = mysql_fetch_array($result) )
{
print $row["id_person"] . " " . $row["namn"];
}
mysql_free_result($result);
mysql_close($dbconn);

Vi surfar in lokalt. Om allt fungerar så skall personerna skrivas ut.
#lynx 127.0.0.1/connect.php

SSL

Apache2 inkluderar bland annat mod_ssl. Du kan lista alla inkompilerade moduler med
#httpd -l

Det enda vi behöver göra är att fixa certifikat samt en servernyckel.
OpenSSL följer med i en standard NetBSD installation. Du hittar den även under:
/usr/pkgsrc/security/openssl

Om du inte har gjort egna ändringar i /etc/openssl/openssl.cnf så kommer du
bli ombedd att fylla i en del information när du skapar ditt certifikat.

Skapa en privat nyckel:
#cd /usr/pkg/etc/httpd
#openssl genrsa -out server.key 1024

Alternativt kan du skapa en privat nyckel som är krypterad, du kommer då att bli ombedd att ange ett lösenord för nyckeln som sedan används när apache skall startas
#openssl genrsa -des3 -out server.key 1024

Skapa ett certifikat:
För att skapa ett självsignerat certifikat, dvs utan någon CA:
#cd /usr/pkg/etc/httpd
#openssl req -new -key server.key -x509 -out server.crt -days 365

Default enligt /usr/pkg/etc/httpd/ssl.conf skall dessa ligga i varsin underkatalog.
#cd /usr/pkg/etc/httpd
#mkdir ssl.crt
#mv server.crt ssl.crt/
#mkdir ssl.key
#mv server.key ssl.key/
#chown www:www ssl.key/server.key
#chmod 400 ssl.key/server.key

Vi startar apache med sslsupport
#apachectl stop
#apachectl startssl

Nu skall både port 80 samt 443 vara öppna
#netstat -na | grep LISTEN

Vi surfar in lokalt
#lynx https://localhost/connect.php

Lycka till!


skrivut.gif Utskriftsformat mail.gif Skicka artikeln till någon


Kommentarer tillhörande (NetBSD med Apache2, PHP, MySQL och SSL)
atmo 62.209.xxx.xxx 2004-12-10 11:54:38 Svara
Underbart:D
Tackar tackar
Fin liten julklapp förejul det där:)


Namn (tomt = anonym):
Din email:






© 2003-2008 NetBSD.se
Materialet som publicerats på denna sida tillhör respektive författare. Materialet får kopieras med förutsättning av att källanvisning medförs som i detta fall är www.netbsd.se. Eventuella kommentarer tillhör skrivande individ. All information erbjuds utan garanti på funktion och duglighet och NetBSD.se tar inget ansvar för händelser som åsakats på grund av något på denna sida. NetBSD är ett registrerat varumärke som tillhör The NetBSD Foundation. Alla varumärken och copyright på denna sida ägs av deras respektive ägare. Vår maskot går under BSD-licensen och är fri att användas.