Introduction
All of our servers will start with this install. This base server is based on OpenSUSE 42.
Downloading the ISO
Visit the OpenSUSE website and download the Leap version. Download the install DVD. You could also use the Network install ISO.
Initial Install
Boot the install DVD/CD/USB. Select the ‘Installation’ option from the menu.
The graphical install loads and we’re ready to go.
*Select your language and keyboard. Click next.
*Change the partitioning if you want. Click next.
*Select your timezone. Click next.
*For user interface select server. Click next.
*Enter local user information. Uncheck ‘Automatic Login’. Click next.
*At the bottom of installations settings enable the ssh service. Click install.
First boot
Reboot the machine when the install finishes.
The OS will boot. Log in.
Get everything updated and install a couple of items.
> zypper in nano
> zypper update
WARNING: My server isn’t directly connected to the internet. The firewall is disabled to help with installation, configuration and testing easier. Once everything is working, turn on the firewall and configure it. I wil remind you to secure your server at the end of this howto.
now reboot the server.
The Second Boot – Installing Additional Packages
We need quite a few other packages. A change in this howto is that I’m installing RPMs reguardless if they were already installed by another dependency. This guards against RPM changes that could cause a package to not be installed.
We need to add and enable a few repositories.
Add the following Repo for Webmin. Create /etc/zypp/repos.d/webmin.repo
[Webmin] name=Webmin Distribution Neutral baseurl=http://download.webmin.com/download/yum enabled=1
Install the following RPMs. Multiple lines to make cut and paste easier.
> zypper in make screen bind
> zypper in libmcrypt perl perl-Net-SSLeay perl-Crypt-SSLeay
> zypper in openssl libopenssl-devel man
Run the following to install Webmin:
> rpm –import http://www.webmin.com/jcameron-key.asc
> zypper in webmin
> systemctl enable webmin
> service webmin start
Install MariaDB.
> zypper in mariadb mariadb-tools
> systemctl enable mysql
> systemctl start mysql
Run the following script to setup mariadb.
> mysql_secure_installation
Install Apache web server
> zypper in apache2
> systemctl enable apache2
> systemctl start apache2
Install PHP.
> zypper in php7 php7-fpm apache2-mod_php7
> zypper in php7-gd php7-snmp php7-mbstring php7-mysql php7-devel
> zypper in php7-odbc php7-imap php7-xmlrpc php7-dba php7-mcrypt
> cp /etc/php7/fpm/php-fpm.conf.default /etc/php7/fpm/php-fpm.conf
> cp /etc/php7/fpm/php-fpm.d/www.conf.default /etc/php7/fpm/php-fpm.d/www.conf
> chkconfig php-fpm on
> systemctl start php-fpm.service
Installing and Configuring phpMyAdmin
I prefer to phpMyAdmin to manage my MySQL databases. The nginx config above has the configuration for phpMyAdmin.
Now install phpMyAdmin.
> zypper in phpMyAdmin
Restart apache2.
> systemctl restart apache2
Now test it out.
Getting root’s and other’s mail
You need to get some local system user’s mail. We’ll use postfix’s virtual file to get the emails to the right place.
Add the following to /etc/postfix/virtual
root admin@yourdomain.tld postmaster admin@yourdomain.tld abuse admin@yourdomain.tld
Now add the configuration option to main.cf
> postconf -e “virtual_alias_maps = hash:/etc/postfix/virtual”
Just a couple commands to wrap everything up.
> postmap /etc/postfix/virtual
> systemctl restart postfix
Final Settings
You may want to enable the linux firewall.
Conclusion
That’s it for the basic server setup. This is an example of a standard linux server setup. Be sure to use setup or webmin to set which services you want to start at boot time. See the other pages for info on configuring servers for virtual webhosting or virtual email hosting. Remember to configure the firewall on the server.