Tips en Trucs 2014

Lokale webserver

Als je een website maakt, ontwerp je die best lokaal. Velen grijpen dan standaard naar een webserver distributie zoals LAMP. Met een paar opdrachten kan je zelf uw eigen lokale webserver opzetten. Dit heeft als voordeel dat je zelf bepaald welke onderdelen je nodig hebt, hoe je ze configureert, enz. Je kunt uw lokale webserver dus beter afstemmen op de uiteindelijk gebruikte webserver bij uw webhoster. Voor deze site gebruik ik enkel statische webpagina's en PHP. Een apache webserver met PHP ondersteuning is dus ruim voldoende.

De installatie

De Apache webserver met PHP ondersteuning installeer je met de volgende opdracht:

dany@linux-nlfy:~> sudo zypper install apache2 apache2-mod_fcgid php5-bcmath php5-bz2 php5-calendar php5-ctype php5-curl php5-dom php5-ftp php5-gd php5-gettext php5-gmp php5-iconv php5-imap php5-ldap php5-mbstring php5-mcrypt php5-mysql php5-odbc php5-openssl php5-pcntl php5-pgsql php5-posix php5-shmop php5-snmp php5-soap php5-sockets php5-sqlite php5-sysvsem php5-tokenizer php5-wddx php5-xmlrpc php5-xsl php5-zlib php5-exif php5-fastcgi php5-pear php5-sysvmsg php5-sysvshm apache2-mod_php5
root's password:
Gegevens van installatiebron laden...
Lezen van geïnstalleerde pakketten...
Afhankelijkheden tussen pakketten oplossen...

De volgende 53 NIEUWE pakketten zullen worden geïnstalleerd:
  apache2 apache2-mod_fcgid apache2-mod_php5 apache2-prefork apache2-utils 
  libapr1 libapr-util1 libc-client2007e_suse libmcrypt libpq5 php5 php5-bcmath 
  php5-bz2 php5-calendar php5-ctype php5-curl php5-dom php5-exif php5-fastcgi 
  php5-ftp php5-gd php5-gettext php5-gmp php5-iconv php5-imap php5-json 
  php5-ldap php5-mbstring php5-mcrypt php5-mysql php5-odbc php5-openssl 
  php5-pcntl php5-pdo php5-pear php5-pgsql php5-posix php5-shmop php5-snmp 
  php5-soap php5-sockets php5-sqlite php5-sysvmsg php5-sysvsem php5-sysvshm 
  php5-tokenizer php5-wddx php5-xmlreader php5-xmlrpc php5-xmlwriter php5-xsl 
  php5-zlib unixODBC 

De volgende 9 aanbevolen pakketten zijn automatisch geselecteerd:
  apache2-prefork php5-ctype php5-dom php5-iconv php5-json php5-sqlite 
  php5-tokenizer php5-xmlreader php5-xmlwriter 

53 nieuw te installeren pakketten.
Totale downloadgrootte: 9,3 MiB Na de operatie zal aanvullend 42,6 MiB worden 
gebruikt.
Doorgaan? [j/n/? alle opties tonen] (j): 
pakket libapr1-1.4.8-3.2.1.x86_64 wordt opgehaald
                                         (1/53),  92,8 KiB (216,6 KiB uitgepakt)
Ophalen: libapr1-1.4.8-3.2.1.x86_64.rpm .................................[klaar]
pakket libc-client2007e_suse-2007e_suse-16.1.2.x86_64 wordt opgehaald
                                         (2/53), 403,6 KiB (  1,1 MiB uitgepakt)
Ophalen: libc-client2007e_suse-2007e_suse-16.1.2.x86_64.rpm .............[klaar]
pakket libmcrypt-2.5.8-114.1.2.x86_64 wordt opgehaald
                                         (3/53),  68,8 KiB (203,7 KiB uitgepakt)
Ophalen: libmcrypt-2.5.8-114.1.2.x86_64.rpm ................[klaar (36,3 KiB/s)]
pakket unixODBC-2.3.1-3.1.2.x86_64 wordt opgehaald
                                         (4/53), 323,3 KiB (  1,1 MiB uitgepakt)
Ophalen: unixODBC-2.3.1-3.1.2.x86_64.rpm ................................[klaar]
pakket libapr-util1-1.5.2-3.1.3.x86_64 wordt opgehaald
                                         (5/53),  89,0 KiB (229,1 KiB uitgepakt)
Ophalen: libapr-util1-1.5.2-3.1.3.x86_64.rpm ............................[klaar]
pakket libpq5-9.2.7-4.4.1.x86_64 wordt opgehaald
                                         (6/53), 144,9 KiB (454,1 KiB uitgepakt)
Ophalen: libpq5-9.2.7-4.4.1.x86_64.rpm ......................[klaar (1,1 MiB/s)]
pakket php5-5.4.20-4.1.x86_64 wordt opgehaald
                                         (7/53),   1,5 MiB (  9,9 MiB uitgepakt)
Ophalen: php5-5.4.20-4.1.x86_64.rpm .........................[klaar (1,7 MiB/s)]
pakket apache2-utils-2.4.6-6.19.2.x86_64 wordt opgehaald
                                         (8/53), 111,2 KiB (216,9 KiB uitgepakt)
Ophalen: apache2-utils-2.4.6-6.19.2.x86_64.rpm ..........................[klaar]
pakket php5-zlib-5.4.20-4.1.x86_64 wordt opgehaald
                                         (9/53),  43,9 KiB ( 39,3 KiB uitgepakt)
Ophalen: php5-zlib-5.4.20-4.1.x86_64.rpm ................................[klaar]
pakket php5-xmlwriter-5.4.20-4.1.x86_64 wordt opgehaald
                                        (10/53),  42,3 KiB ( 51,0 KiB uitgepakt)
Ophalen: php5-xmlwriter-5.4.20-4.1.x86_64.rpm ...........................[klaar]
pakket php5-xmlrpc-5.4.20-4.1.x86_64 wordt opgehaald
                                        (11/53),  68,3 KiB (103,3 KiB uitgepakt)
Ophalen: php5-xmlrpc-5.4.20-4.1.x86_64.rpm ..............................[klaar]
pakket php5-wddx-5.4.20-4.1.x86_64 wordt opgehaald
                                        (12/53),  45,3 KiB ( 38,8 KiB uitgepakt)
Ophalen: php5-wddx-5.4.20-4.1.x86_64.rpm ................................[klaar]
pakket php5-tokenizer-5.4.20-4.1.x86_64 wordt opgehaald
                                        (13/53),  36,5 KiB ( 18,5 KiB uitgepakt)
Ophalen: php5-tokenizer-5.4.20-4.1.x86_64.rpm ...........................[klaar]
pakket php5-sysvshm-5.4.20-4.1.x86_64 wordt opgehaald
                                        (14/53),  36,0 KiB ( 14,5 KiB uitgepakt)
Ophalen: php5-sysvshm-5.4.20-4.1.x86_64.rpm .............................[klaar]
pakket php5-sysvsem-5.4.20-4.1.x86_64 wordt opgehaald
                                        (15/53),  34,9 KiB ( 10,4 KiB uitgepakt)
Ophalen: php5-sysvsem-5.4.20-4.1.x86_64.rpm .............................[klaar]
pakket php5-sysvmsg-5.4.20-4.1.x86_64 wordt opgehaald
                                        (16/53),  37,1 KiB ( 18,6 KiB uitgepakt)
Ophalen: php5-sysvmsg-5.4.20-4.1.x86_64.rpm .............................[klaar]
pakket php5-sockets-5.4.20-4.1.x86_64 wordt opgehaald
                                        (17/53),  48,9 KiB ( 59,0 KiB uitgepakt)
Ophalen: php5-sockets-5.4.20-4.1.x86_64.rpm .............................[klaar]
pakket php5-soap-5.4.20-4.1.x86_64 wordt opgehaald
                                        (18/53), 161,1 KiB (380,2 KiB uitgepakt)
Ophalen: php5-soap-5.4.20-4.1.x86_64.rpm ....................[klaar (1,9 MiB/s)]
pakket php5-snmp-5.4.20-4.1.x86_64 wordt opgehaald
                                        (19/53),  52,1 KiB ( 83,5 KiB uitgepakt)
Ophalen: php5-snmp-5.4.20-4.1.x86_64.rpm ................................[klaar]
pakket php5-shmop-5.4.20-4.1.x86_64 wordt opgehaald
                                        (20/53),  35,4 KiB ( 14,5 KiB uitgepakt)
Ophalen: php5-shmop-5.4.20-4.1.x86_64.rpm ...............................[klaar]
pakket php5-posix-5.4.20-4.1.x86_64 wordt opgehaald
                                        (21/53),  39,1 KiB ( 31,0 KiB uitgepakt)
Ophalen: php5-posix-5.4.20-4.1.x86_64.rpm ...............................[klaar]
pakket php5-pdo-5.4.20-4.1.x86_64 wordt opgehaald
                                        (22/53),  71,0 KiB (131,5 KiB uitgepakt)
Ophalen: php5-pdo-5.4.20-4.1.x86_64.rpm .................................[klaar]
pakket php5-pcntl-5.4.20-4.1.x86_64 wordt opgehaald
                                        (23/53),  40,7 KiB ( 30,8 KiB uitgepakt)
Ophalen: php5-pcntl-5.4.20-4.1.x86_64.rpm .................[klaar (320,2 KiB/s)]
pakket php5-openssl-5.4.20-4.1.x86_64 wordt opgehaald
                                        (24/53),  70,2 KiB (129,4 KiB uitgepakt)
Ophalen: php5-openssl-5.4.20-4.1.x86_64.rpm .............................[klaar]
pakket php5-mcrypt-5.4.20-4.1.x86_64 wordt opgehaald
                                        (25/53),  43,1 KiB ( 43,0 KiB uitgepakt)
Ophalen: php5-mcrypt-5.4.20-4.1.x86_64.rpm ..............................[klaar]
pakket php5-mbstring-5.4.20-4.1.x86_64 wordt opgehaald
                                        (26/53), 476,4 KiB (  1,3 MiB uitgepakt)
Ophalen: php5-mbstring-5.4.20-4.1.x86_64.rpm ............................[klaar]
pakket php5-json-5.4.20-4.1.x86_64 wordt opgehaald
                                        (27/53),  45,4 KiB ( 42,7 KiB uitgepakt)
Ophalen: php5-json-5.4.20-4.1.x86_64.rpm ................................[klaar]
pakket php5-imap-5.4.20-4.1.x86_64 wordt opgehaald
                                        (28/53),  58,8 KiB ( 99,4 KiB uitgepakt)
Ophalen: php5-imap-5.4.20-4.1.x86_64.rpm ................................[klaar]
pakket php5-iconv-5.4.20-4.1.x86_64 wordt opgehaald
                                        (29/53),  46,3 KiB ( 42,9 KiB uitgepakt)
Ophalen: php5-iconv-5.4.20-4.1.x86_64.rpm ...............................[klaar]
pakket php5-gmp-5.4.20-4.1.x86_64 wordt opgehaald
                                        (30/53),  43,8 KiB ( 51,0 KiB uitgepakt)
Ophalen: php5-gmp-5.4.20-4.1.x86_64.rpm .................................[klaar]
pakket php5-gettext-5.4.20-4.1.x86_64 wordt opgehaald
                                        (31/53),  35,3 KiB ( 14,5 KiB uitgepakt)
Ophalen: php5-gettext-5.4.20-4.1.x86_64.rpm .............................[klaar]
pakket php5-gd-5.4.20-4.1.x86_64 wordt opgehaald
                                        (32/53), 122,7 KiB (356,0 KiB uitgepakt)
Ophalen: php5-gd-5.4.20-4.1.x86_64.rpm ..................................[klaar]
pakket php5-fastcgi-5.4.20-4.1.x86_64 wordt opgehaald
                                        (33/53),   1,3 MiB (  9,3 MiB uitgepakt)
Ophalen: php5-fastcgi-5.4.20-4.1.x86_64.rpm .................[klaar (1,9 MiB/s)]
pakket php5-dom-5.4.20-4.1.x86_64 wordt opgehaald
                                        (34/53),  81,2 KiB (188,2 KiB uitgepakt)
Ophalen: php5-dom-5.4.20-4.1.x86_64.rpm .................................[klaar]
pakket php5-curl-5.4.20-4.1.x86_64 wordt opgehaald
                                        (35/53),  53,7 KiB ( 71,4 KiB uitgepakt)
Ophalen: php5-curl-5.4.20-4.1.x86_64.rpm ................................[klaar]
pakket php5-ctype-5.4.20-4.1.x86_64 wordt opgehaald
                                        (36/53),  34,8 KiB ( 14,4 KiB uitgepakt)
Ophalen: php5-ctype-5.4.20-4.1.x86_64.rpm ...............................[klaar]
pakket php5-calendar-5.4.20-4.1.x86_64 wordt opgehaald
                                        (37/53),  41,7 KiB ( 31,5 KiB uitgepakt)
Ophalen: php5-calendar-5.4.20-4.1.x86_64.rpm ............................[klaar]
pakket php5-bz2-5.4.20-4.1.x86_64 wordt opgehaald
                                        (38/53),  39,5 KiB ( 27,2 KiB uitgepakt)
Ophalen: php5-bz2-5.4.20-4.1.x86_64.rpm .................................[klaar]
pakket php5-bcmath-5.4.20-4.1.x86_64 wordt opgehaald
                                        (39/53),  45,1 KiB ( 34,5 KiB uitgepakt)
Ophalen: php5-bcmath-5.4.20-4.1.x86_64.rpm ..............................[klaar]
pakket apache2-2.4.6-6.19.2.x86_64 wordt opgehaald
                                       (40/53), 1000,1 KiB (  3,5 MiB uitgepakt)
Ophalen: apache2-2.4.6-6.19.2.x86_64.rpm ....................[klaar (1,1 MiB/s)]
pakket php5-pear-5.4.20-4.1.noarch wordt opgehaald
                                        (41/53), 326,9 KiB (  2,1 MiB uitgepakt)
Ophalen: php5-pear-5.4.20-4.1.noarch.rpm ................................[klaar]
pakket php5-sqlite-5.4.20-4.1.x86_64 wordt opgehaald
                                        (42/53),  54,6 KiB ( 79,9 KiB uitgepakt)
Ophalen: php5-sqlite-5.4.20-4.1.x86_64.rpm ..............................[klaar]
pakket php5-pgsql-5.4.20-4.1.x86_64 wordt opgehaald
                                        (43/53),  82,2 KiB (175,3 KiB uitgepakt)
Ophalen: php5-pgsql-5.4.20-4.1.x86_64.rpm ...............................[klaar]
pakket php5-odbc-5.4.20-4.1.x86_64 wordt opgehaald
                                        (44/53),  60,0 KiB ( 98,3 KiB uitgepakt)
Ophalen: php5-odbc-5.4.20-4.1.x86_64.rpm ................................[klaar]
pakket php5-mysql-5.4.20-4.1.x86_64 wordt opgehaald
                                        (45/53),  85,2 KiB (217,1 KiB uitgepakt)
Ophalen: php5-mysql-5.4.20-4.1.x86_64.rpm ...............................[klaar]
pakket php5-ldap-5.4.20-4.1.x86_64 wordt opgehaald
                                        (46/53),  47,7 KiB ( 59,1 KiB uitgepakt)
Ophalen: php5-ldap-5.4.20-4.1.x86_64.rpm ................................[klaar]
pakket php5-ftp-5.4.20-4.1.x86_64 wordt opgehaald
                                        (47/53),  48,3 KiB ( 54,9 KiB uitgepakt)
Ophalen: php5-ftp-5.4.20-4.1.x86_64.rpm .................................[klaar]
pakket php5-exif-5.4.20-4.1.x86_64 wordt opgehaald
                                        (48/53),  56,6 KiB ( 74,8 KiB uitgepakt)
Ophalen: php5-exif-5.4.20-4.1.x86_64.rpm ................................[klaar]
pakket php5-xsl-5.4.20-4.1.x86_64 wordt opgehaald
                                        (49/53),  42,9 KiB ( 35,2 KiB uitgepakt)
Ophalen: php5-xsl-5.4.20-4.1.x86_64.rpm .................................[klaar]
pakket php5-xmlreader-5.4.20-4.1.x86_64 wordt opgehaald
                                        (50/53),  41,2 KiB ( 35,0 KiB uitgepakt)
Ophalen: php5-xmlreader-5.4.20-4.1.x86_64.rpm ...........................[klaar]
pakket apache2-prefork-2.4.6-6.19.2.x86_64 wordt opgehaald
                                        (51/53), 235,1 KiB (582,9 KiB uitgepakt)
Ophalen: apache2-prefork-2.4.6-6.19.2.x86_64.rpm ........................[klaar]
pakket apache2-mod_php5-5.4.20-4.1.x86_64 wordt opgehaald
                                        (52/53),   1,3 MiB (  9,3 MiB uitgepakt)
Ophalen: apache2-mod_php5-5.4.20-4.1.x86_64.rpm .........................[klaar]
pakket apache2-mod_fcgid-2.3.9-1.1.x86_64 wordt opgehaald
                                        (53/53),  66,4 KiB (268,7 KiB uitgepakt)
Ophalen: apache2-mod_fcgid-2.3.9-1.1.x86_64.rpm .........................[klaar]
( 1/53) Installeert: libapr1-1.4.8-3.2.1 ................................[klaar]
( 2/53) Installeert: libc-client2007e_suse-2007e_suse-16.1.2 ............[klaar]
( 3/53) Installeert: libmcrypt-2.5.8-114.1.2 ............................[klaar]
( 4/53) Installeert: unixODBC-2.3.1-3.1.2 ...............................[klaar]
( 5/53) Installeert: libapr-util1-1.5.2-3.1.3 ...........................[klaar]
( 6/53) Installeert: libpq5-9.2.7-4.4.1 .................................[klaar]
( 7/53) Installeert: php5-5.4.20-4.1 ....................................[klaar]
( 8/53) Installeert: apache2-utils-2.4.6-6.19.2 .........................[klaar]
( 9/53) Installeert: php5-zlib-5.4.20-4.1 ...............................[klaar]
(10/53) Installeert: php5-xmlwriter-5.4.20-4.1 ..........................[klaar]
(11/53) Installeert: php5-xmlrpc-5.4.20-4.1 .............................[klaar]
(12/53) Installeert: php5-wddx-5.4.20-4.1 ...............................[klaar]
(13/53) Installeert: php5-tokenizer-5.4.20-4.1 ..........................[klaar]
(14/53) Installeert: php5-sysvshm-5.4.20-4.1 ............................[klaar]
(15/53) Installeert: php5-sysvsem-5.4.20-4.1 ............................[klaar]
(16/53) Installeert: php5-sysvmsg-5.4.20-4.1 ............................[klaar]
(17/53) Installeert: php5-sockets-5.4.20-4.1 ............................[klaar]
(18/53) Installeert: php5-soap-5.4.20-4.1 ...............................[klaar]
(19/53) Installeert: php5-snmp-5.4.20-4.1 ...............................[klaar]
(20/53) Installeert: php5-shmop-5.4.20-4.1 ..............................[klaar]
(21/53) Installeert: php5-posix-5.4.20-4.1 ..............................[klaar]
(22/53) Installeert: php5-pdo-5.4.20-4.1 ................................[klaar]
(23/53) Installeert: php5-pcntl-5.4.20-4.1 ..............................[klaar]
(24/53) Installeert: php5-openssl-5.4.20-4.1 ............................[klaar]
(25/53) Installeert: php5-mcrypt-5.4.20-4.1 .............................[klaar]
(26/53) Installeert: php5-mbstring-5.4.20-4.1 ...........................[klaar]
(27/53) Installeert: php5-json-5.4.20-4.1 ...............................[klaar]
(28/53) Installeert: php5-imap-5.4.20-4.1 ...............................[klaar]
(29/53) Installeert: php5-iconv-5.4.20-4.1 ..............................[klaar]
(30/53) Installeert: php5-gmp-5.4.20-4.1 ................................[klaar]
(31/53) Installeert: php5-gettext-5.4.20-4.1 ............................[klaar]
(32/53) Installeert: php5-gd-5.4.20-4.1 .................................[klaar]
(33/53) Installeert: php5-fastcgi-5.4.20-4.1 ............................[klaar]
(34/53) Installeert: php5-dom-5.4.20-4.1 ................................[klaar]
(35/53) Installeert: php5-curl-5.4.20-4.1 ...............................[klaar]
(36/53) Installeert: php5-ctype-5.4.20-4.1 ..............................[klaar]
(37/53) Installeert: php5-calendar-5.4.20-4.1 ...........................[klaar]
(38/53) Installeert: php5-bz2-5.4.20-4.1 ................................[klaar]
(39/53) Installeert: php5-bcmath-5.4.20-4.1 .............................[klaar]
(40/53) Installeert: apache2-2.4.6-6.19.2 ...............................[klaar]
Aanvullende rpm-uitvoer:
/usr/sbin/suexec2: cannot verify root:root 0755 - not listed in /etc/permissions
Updating /etc/sysconfig/apache2...
looking for old 2.0 modules to be renamed...
!!ATTENTION! authz_default was removed from apache version 2.4 or later, CHECK YOUR CONFIGURATION!!!
Done.


(41/53) Installeert: php5-pear-5.4.20-4.1 ...............................[klaar]
(42/53) Installeert: php5-sqlite-5.4.20-4.1 .............................[klaar]
(43/53) Installeert: php5-pgsql-5.4.20-4.1 ..............................[klaar]
(44/53) Installeert: php5-odbc-5.4.20-4.1 ...............................[klaar]
(45/53) Installeert: php5-mysql-5.4.20-4.1 ..............................[klaar]
(46/53) Installeert: php5-ldap-5.4.20-4.1 ...............................[klaar]
(47/53) Installeert: php5-ftp-5.4.20-4.1 ................................[klaar]
(48/53) Installeert: php5-exif-5.4.20-4.1 ...............................[klaar]
(49/53) Installeert: php5-xsl-5.4.20-4.1 ................................[klaar]
(50/53) Installeert: php5-xmlreader-5.4.20-4.1 ..........................[klaar]
(51/53) Installeert: apache2-prefork-2.4.6-6.19.2 .......................[klaar]
(52/53) Installeert: apache2-mod_php5-5.4.20-4.1 ........................[klaar]
(53/53) Installeert: apache2-mod_fcgid-2.3.9-1.1 ........................[klaar]

Normaal worden alle mappen en bestanden in de map /srv/www/htdocs door de webserver apache aanzien als website inhoud. Als je een andere map als website aan apache wilt doorgeven, pas je in het configuratiebestand /etc/apache2/default-server.conf de volgende regels aan (bijvoorbeeld met de opdracht sudo joe /etc/apache2/default-server.conf):

DocumentRoot "/srv/www/htdocs"
naar
DocumentRoot "/usr/home/Documents/SNT/Linux/Web"
En
<Directory "/srv/www/htdocs">
naar
<Directory "/usr/home/Documents/SNT/Linux/Web">

Om de rest van het systeem af te schermen van de website (webserver) gebruikt apache een eigen gebruiker die enkel via apache toegang heeft tot de bestanden in de map met de website. Om webpagina's aan te kunnen passen, laten we apache werken met de toegangsrechten van de gebruiker die de website beheert. Pas daarvoor in het configuratiebestand /etc/apache2/uid.conf de volgende regels aan (bijvoorbeeld met de opdracht sudo joe /etc/apache2/uid.conf):

User wwwrun
Group www
naar
User dany
Group users

Bij het gebruik van sessions in PHP hebben we een tijdelijke map nodig. Deze maak je met de volgende opdracht aan:

dany@linux-nlfy:~> mkdir -p /home/dany/tmp

Pas het configuratiebestand /etc/php5/apache2/php.ini (bijvoorbeeld met de opdracht sudo joe /etc/php5/apache2/php.ini) aan zodat PHP weet welke map als tijdelijke map gebruikt mag worden. Pas de volgende regel aan:

session.save_path = "/var/lib/php5"
naar
session.save_path = "/home/dany/tmp"

De webserver kan je nu starten met de opdracht:

dany@linux-nlfy:~> sudo systemctl start apache2.service

Surf naar http://localhost en uw lokale website verschijnt in de browser.

Lokale site in browser

Je kunt de webserver bij elke computerstart automatisch laten starten door de volgende opdracht uit te voeren:

dany@linux-nlfy:~> sudo systemctl enable apache2.service
root's password:
ln -s '/usr/lib/systemd/system/apache2.service' '/etc/systemd/system/multi-user.target.wants/apache2.service'