Apache web server is available for SUSE Linux Enterprise Server or SLES and openSUSE, though the installation process is not as automated and straightforward as other Linux distributions. The issue is compounded by the official documentation, which is not as polished.

Apache can be installed on openSUSE and SLES using zypper from the command line. It requires further configuration before being usable as the installer package does not automatically configure some of the options like other major Linux distributions.

Steps to install and configure Apache on openSUSE or SLES:

  1. Launch terminal application.
  2. Refresh zypper package list.
    > sudo zypper refresh
    [sudo] password for root:
    Repository 'Main Repository (NON-OSS)' is up to date.                                                          
    Repository 'Main Repository (OSS)' is up to date.                                                              
    Repository 'Main Update Repository' is up to date.                                                             
    Repository 'openSUSE-20191225-0' is up to date.                                                                
    All repositories have been refreshed.
  3. Install apache2 package using zypper.
    > sudo zypper install --no-confirm  apache2
    Loading repository data...
    Reading installed packages...
    Resolving package dependencies...
    The following 6 NEW packages are going to be installed:
      apache2 apache2-prefork apache2-utils libgc1 system-user-wwwrun w3m
    The following recommended package was automatically selected:
    6 new packages to install.
    Overall download size: 2.5 MiB. Already cached: 0 B. After the operation, additional 7.7 MiB will be used.
    Continue? [y/n/v/...? shows all options] (y): y
  4. Configure Apache options as necessary.
    > sudo vi /etc/apache2/httpd.conf
  5. Test configured Apache options for errors.
    > sudo apachectl configtest
    AH00558: httpd-prefork: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
    Syntax OK
  6. Restart apache2 service once you're done with yur configuration.
    > sudo systemctl restart apache2
  7. Configure apache2 service to automatically start during system boot.
    > sudo systemctl enable apache2
    Created symlink /etc/systemd/system/httpd.service → /usr/lib/systemd/system/apache2.service.
    Created symlink /etc/systemd/system/apache.service → /usr/lib/systemd/system/apache2.service.
    Created symlink /etc/systemd/system/multi-user.target.wants/apache2.service → /usr/lib/systemd/system/apache2.service.
  8. Enable network access to port 80 (http) and 443 (https) if firewall is enabled.
    > sudo firewall-cmd --permanent --add-service=http --add-service=https
  9. Reload firewall for rule changes to take effect.
    > sudo firewall-cmd --reload
  10. Add DirectoryIndex file to DocumentRoot folder.
    > sudo vi /srv/www/htdocs/index.html
  11. Make sure DocumentRoot folder has correct ownership.
    > sudo chown --recursive wwwrun:wwwrun /srv/www/
  12. Access the website using browser or command line tools to test if your Apache web server is up and running.
    > curl
    <h1>Your Apache service is up and running</h1>
Discuss the article:

Comment anonymously. Login not required.