Das slackware LAMP stack Tutorial installiert, konfiguriert, und verifiziert Linux, Apache, MariaDB, und PHP.
Die Genehmigung zur Nutzung, Vervielfältigung, Änderung, und Verbreitung dieses Tutorials wird hiermit erteilt, vorausgesetzt, dass dieser Genehmigungsvermerk in allen Kopien erscheint. Für das Tutorial gilt der Haftungsausschluss im Quelltext.
benutzer
$ cd ~/Downloads
$ wget http://mirror.paketspiegel.de/slackware64-15.0-install-dvd.iso
$ wget https://mirrors.slackware.com/slackware/slackware-iso/slackware64-15.0-iso/slackware64-15.0-install-dvd.iso
$ su root -c "dd if=slackware64-15.0-install-dvd.iso of=/dev/sda bs=4M status=progress; sync"
Installieren, Konfigurieren, Verifizieren
Slackware 15.0 x86_64
@server
# fdisk /dev/nvme0n1
g
n
Enter
Enter
+64M
Y
n
Enter
Enter
+32G
Y
n
Enter
Enter
Enter
Y
p
t
1
1
t
2
19
p
w
@server
# setup
Hostname: www
Domainname: example.com
IPv4-Adresse: 192.168.3.13
Netzmaske: 255.255.255.0
Torweg: 192.168.3.1
Namenserver: 192.168.3.1
root@server
# useradd --create-home <Benutzer>
# passwd <Benutzer>
root@server
# echo $http_proxy
# http_proxy=http://192.168.3.1:3128
# export http_proxy
root@Mageia 10 alpha1 Live GNOME x86_64
# urpmi --force task-c-devel
urpmi expat-devel
# urpmi --force cmake
# urpmi --force libxml2-devel
urpmi --force sqlite3-devel
root@debian 13.4.0 amd64 netinst
# apt install build-essential
# apt install libpcre2-dev
apt install libexpat1-dev
apt install lynx
# apt install cmake
apt install libncurses-dev
apt install libgnutls28-dev
# apt install pkg-config
apt install libxml2-dev
apt install libssl-dev
apt install libsqlite3-dev
apt install zlib1g-dev
root
# id <Benutzer>
# chown <Benutzer>:<Gruppe> /srv
# hostname -I
# top
1 T M
benutzer@desktop
$ rm ~/.ssh/known_hosts
$ ssh -l <Benutzer> 192.168.3.13
Installieren, Konfigurieren, Verifizieren
benutzer@server
$ cd /srv/1
$ su root -c "usr/bin/apachectl stop"
$ cd ~; rm -f -r /srv/1
benutzer
$ mkdir /srv/1
$ cd /srv/1
benutzer
$ echo $http_proxy
$ http_proxy=http://192.168.3.1:3128
$ export http_proxy
benutzer@server /srv/1
$ wget http://paketspiegel.de/httpd-2.4.66.tar.gz
$ wget http://paketspiegel.de/apr-1.7.6.tar.gz
$ wget http://paketspiegel.de/apr-util-1.6.3.tar.gz
$ gunzip -k httpd-2.4.66.tar.gz
$ gunzip -k apr-1.7.6.tar.gz
$ gunzip -k apr-util-1.6.3.tar.gz
$ tar -x -f httpd-2.4.66.tar
$ tar -x -f apr-1.7.6.tar
$ tar -x -f apr-util-1.6.3.tar
benutzer
$ cp -r apr-1.7.6 httpd-2.4.66/srclib/apr
$ cp -r apr-util-1.6.3 httpd-2.4.66/srclib/apr-util
$ mkdir httpd
$ cd httpd
$ ../httpd-2.4.66/configure --help
$ ../httpd-2.4.66/configure --prefix=/srv/1/usr --with-included-apr --with-sqlite3=/usr --with-ssl=/usr
$ ../httpd-2.4.66/configure --prefix=/srv/1/usr --with-included-apr --with-sqlite3=/usr --with-ssl=/usr --with-mpm=prefork
$ make --help
$ make -j 3
$ make install
$ cd ..
benutzer
$ manpath
$ which httpd
$ echo $PATH
$ PATH=/srv/1/usr/bin:$PATH
$ man -M usr/man apachectl
benutzer
$ vi usr/conf/httpd.conf
− User daemon
− Group daemon
+ User <Benutzer>
+ Group <Gruppe>
+ ServerName www.example.com:80
Schift+7 User daemon Enter
W C W <Benutzer> Esc
W W .
Schift+7 #ServerName Enter
Y Y P X
Schift+. W Q
$ which apachectl
$ apachectl configtest
$ su root -c "usr/bin/apachectl start"
benutzer
$ echo $http_proxy
$ http_proxy= lynx http://localhost
Q Y
$ httpd -h
$ httpd -M
$ httpd -S
Installieren, Konfigurieren, Verifizieren
benutzer /srv/1
$ wget http://paketspiegel.de/mariadb-11.8.6.tar.gz
$ gunzip -k mariadb-11.8.6.tar.gz
$ tar -x -f mariadb-11.8.6.tar
benutzer
$ mkdir mariadb
$ cd mariadb
$ cmake --help
$ cmake -L ../mariadb-11.8.6
$ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/srv/1/usr ../mariadb-11.8.6
$ cmake --build . --parallel 3
$ cmake --install .
$ cd ..
benutzer
$ usr/scripts/mariadb-install-db --help
$ usr/scripts/mariadb-install-db --datadir=/srv/1/usr/data
$ vi usr/my.cnf
[client-server] socket=/tmp/mysql.sock1 [server] skip-networking datadir=/srv/1/usr/data
I … Esc
Schift+. W Q
$ which mariadbd
$ mariadbd --help
$ MARIADB_HOME=/srv/1/usr mariadbd&
benutzer
$ which mariadb
$ MARIADB_HOME=/srv/1/usr mariadb
MariaDB [(none)]
> help;
> status;
> help RENAME USER;
MariaDB [(none)]
> SHOW DATABASES;
> use test;
MariaDB [test]
> SHOW TABLES;
> help SHOW COLUMNS;
> SHUTDOWN;
> quit;
Installieren, Konfigurieren, Verifizieren
benutzer /srv/1
$ wget http://paketspiegel.de/php-8.5.4.tar.gz
$ gunzip -k php-8.5.4.tar.gz
$ tar -x -f php-8.5.4.tar
benutzer
$ mkdir php
$ cd php
$ ../php-8.5.4/configure --help
$ ../php-8.5.4/configure --prefix=/srv/1/usr --with-pdo-mysql --with-openssl
$ ../php-8.5.4/configure --prefix=/srv/1/usr --with-apxs2=/srv/1/usr/bin/apxs --with-pdo-mysql --with-openssl
$ make -j 3
$ make install
$ cd ..
benutzer
$ which php
$ php --help
$ php --modules
$ php --ini
$ cp php-8.5.4/php.ini-development usr/lib/php.ini
$ cp php-8.5.4/php.ini-production usr/lib
cp php-8.5.4/php.ini-development usr/lib
benutzer
$ vi usr/conf/httpd.conf
+ LoadModule cgid_module modules/mod_cgid.so ‥ + LoadModule actions_module modules/mod_actions.so ‥ DocumentRoot "/srv/1/usr/htdocs" <Directory "/srv/1/usr/htdocs"> ‥ + + AddHandler PHP-Skript .php + Action PHP-Skript /cgi-bin/php </Directory>
Schift+7 mod_cgid Enter
Y Y P X
et cetera
$ vi usr/conf/httpd.conf
LoadModule php_module modules/libphp.so + + <FilesMatch \.php$> + SetHandler application/x-httpd-php + </FilesMatch>
$ cp usr/bin/php-cgi usr/cgi-bin/php
$ apachectl configtest
$ su
root
# usr/bin/apachectl stop
# usr/bin/apachectl start
# exit
benutzer
$ vi usr/htdocs/info.php
<?php phpinfo (); ?>
I … Esc
Schift+. W Q
$ echo $http_proxy
$ http_proxy= lynx http://localhost/info.php
benutzer
$ mkdir /srv/1/usr/htdocs/com.example.www
$ ln -s /srv/1/usr/htdocs/com.example.www ~/com.example.www
benutzer
$ vi usr/conf/httpd.conf
+ Include conf/extra/httpd-vhosts.conf
Schift+7 vhosts Enter
Y Y P X
Schift+. W Q
$ vi usr/conf/extra/httpd-vhosts.conf
+ <VirtualHost *:80> + + ServerAdmin webmaster@example.com + + ServerName www.example.com + + DocumentRoot /srv/1/usr/htdocs/com.example.www + + </VirtualHost>
Schift+7 VirtualHost \* Enter
D Schift+G
O Enter
… Esc
Schift+. W Q
$ apachectl configtest
$ httpd -t -D DUMP_VHOSTS
$ su root -c "usr/bin/apachectl restart"
benutzer
$ cd ~
$ vi com.example.www/index.html
<!DOCTYPE html> <!-- Kopierecht 2026 Gesellschaft mbh --> <html lang=de> <head> <meta name=viewport content="width=device-width"> <meta charset=utf-8> <title> Gesellschaft mbH </title> <meta name=keywords content="Eins, Zwei, Drei"> <meta name=description content="Gesellschaft mbH für …"> <style> html { color-scheme: dark; } header { font-size: 24px; } @media screen and (min-width: 426px) { html { color-scheme: light; } } </style> <script> window. onload = function () { console. log ("Hallo"); }; </script> </head> <body> <header> Gesellschaft mbH </header> <p> Herzlich Willkommen! </p> </body>
benutzer
$ http_proxy= lynx http://localhost
root@desktop
# vi /etc/hosts
+ 192.168.3.13 www.example.com
# exit
benutzer@desktop
$ firefox http://www.example.com
Daniel Schildt
LAMP-Tutorial.de
mail@daniel-schildt.de
Kastanienweg 4 a
41540 Dormagen
Deutschland