Minimalistyczne Apache 2.4.16 na Debianie/Ubuntu

apache_2.4.16

Dziś przedstawię jak na szybko uruchomić serwer WWW Apache 2.4.16 na serwerze Debian/Ubuntu i podobnych w celu np. udostępnienia plików czy umieszczenia prostej strony WWW w HTML, nie instaluje PHP.

1. Pakiety potrzebne do kompilacji

apt-get update; apt-get install dpkg-dev build-essential zlib1g-dev libpcre3 libpcre3-dev unzip curl libcurl4-openssl-dev libossp-uuid-dev nano curl vsftpd -y
apt-get update; apt-get build-dep apache2 -y

2. Dodawanie użytkownika (później przyda się do FTP):

adduser www
mkdir -p /home/www/public_html

3. Konfigurujemy usera www-data w systemie:

groupadd -g 25 www-data && useradd -c "Apache Server" -d /home/www/public_html -g www-data -s /bin/false -u 25 www-data

4. Pobieramy źródła Apache

curl -O https://archive.apache.org/dist/httpd/httpd-2.4.16.tar.bz2
bunzip2 httpd-2.4.16.tar.bz2 ; tar xvf httpd-2.4.16.tar
mkdir -p /var/compile ; mv httpd-2.4.16 /var/compile
source="/var/compile/httpd-2.4.16"
cd $source
curl -O http://www.linuxfromscratch.org/patches/blfs/svn/httpd-2.4.16-blfs_layout-1.patch

5. Kompilacja
a) patch

patch -Np1 -i httpd-2.4.16-blfs_layout-1.patch
sed '/dir.*CFG_PREFIX/s@^@#@' -i support/apxs.in

b) konfiguracja

./configure --enable-authnz-fcgi                            \
            --enable-layout=BLFS                            \
            --enable-mods-shared="all cgi"                  \
            --enable-mpms-shared=all                        \
            --enable-suexec=shared                          \
            --with-apr=/usr/bin/apr-1-config                \
            --with-apr-util=/usr/bin/apu-1-config           \
            --with-suexec-bin=/usr/lib/httpd/suexec         \
            --with-suexec-caller=www-data                   \
            --with-suexec-docroot=/home/www/public_html     \
            --with-suexec-logfile=/var/log/httpd/suexec.log \
            --with-suexec-uidmin=100                        \
            --with-suexec-userdir=public_html

c) komilacja i instalacja

make && make install

6. Małe zabiegi po kompilacji:

mv -v /usr/sbin/suexec /usr/lib/httpd/suexec 
chgrp www-data /usr/lib/httpd/suexec 
chmod 4754 /usr/lib/httpd/suexec 
chown -v -R www.www /home/www/public_html
rm /etc/httpd/httpd.conf ; wget http://pliki.linuxiarz.pl/09-2015/httpd.conf -O /etc/httpd/httpd.conf

7. Serwer FTP

rm /etc/vsftpd.conf
wget http://pliki.linuxiarz.pl/08-2015/ftp/vsftpd.conf -O /etc/vsftpd.conf; touch /etc/vsftpd.chroot_list
wget http://pliki.linuxiarz.pl/08-2015/ftp/private.zip; unzip private.zip; mv private/* /etc/ssl/private; rm private.zip
service vsftpd restart

8. Uruchomienie serwera:

apachectl start

Document Root: /home/www/public_html