Contents
1.WEB Server (Apache)
1.1 apache2 Install
| 1 | # zypper -n install apache2 | 
1.2 Apache2 :Basic Settings
| 1 2 3 4 5 6 7 8 | # vi /etc/sysconfig/apache2 # Line 146:Change to administrator address APACHE_SERVERADMIN=<administrator address> # Line 163:Change to your domain name APACHE_SERVERNAME="<domain name>" # Line 242:Change APACHE_SERVERTOKENS="Prod" | 
| 1 2 3 4 | # vi /etc/apache2/httpd.conf # Line 197:Set file names accessible only by directory name DirectoryIndex index.html index.html.var index.php | 
| 1 2 3 4 5 | # systemctl start apache2 # 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. | 
1.3 Firewalld
HTTP service permission is required. Note that HTTP uses 80/TCP; HTTPS uses 443
| 1 2 3 4 5 6 | # firewall-cmd --add-service=http --permanent Success # firewall-cmd --add-service=https --permanent Success # firewall-cmd --reload success | 
1.4 Apache2 : operation check
Create an HTML test page to check the operation. Start a Web browser on the client PC and check if the test page you created can be accessed as follows
| 1 2 3 4 5 6 7 8 9 | # vi /srv/www/htdocs/index.html <html> <body> <div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;"> Apache Test Page </div> </body> </html> | 
Access http://[IP address] with a browser and confirm that it is displayed as shown below.

2. Apache2 : Using Perl Scripts
Configure Perl scripts to be used as CGI
2.1 Perl
①Install
| 1 | # zypper -n install perl | 
②Enable CGI module
| 1 | # a2enmod cgid | 
CGI execution is permitted by default under [/srv/www/cgi-bin/].
For example, by creating and placing the script [/srv/www/cgi-bin/index.cgi], you can access [http://(httpd server)/cgi-bin/index.cgi].
This configuration treats all files under [/srv/www/cgi-bin/] as CGI, so files other than CGI cannot be displayed.
| 1 2 | # grep -n "^ *ScriptAlias" /etc/apache2/default-server.conf 72:ScriptAlias /cgi-bin/ "/srv/www/cgi-bin/" | 
| 1 | # systemctl restart apache2 | 
③Create test scripts and check operation
| 1 2 3 4 5 | # cat > /srv/www/cgi-bin/test_script <<'EOF' #!/usr/bin/perl print "Content-type: text/html\n\n"; print "Hello CGI\n"; EOF | 
Authorize script files
| 1 | # chmod 705 /srv/www/cgi-bin/test_script | 
operation check
| 1 2 | # curl http://localhost/cgi-bin/test_script Hello CGI | 
If "Hello CGI" is displayed, it is normal.
3. Apache2 : Virtual Host Settings
Configure both domains sample1.korodes.com sample2.korodes.com to be displayed on one server
| 1 | # cd /srv/www/htdocs/ | 
Create a directory named sample1.korodes.com under /srv/www/htdocs/
| 1 | # mkdir sample1.korodes.com | 
Create the idex.html file in the sample1.korodes.com directory
| 1 2 3 | # vi sample1.korodes.com/index.html +++++++++Virtual Host Site1 sample1.korodes.com ++++++++++ | 
Create a new virtual_host.conf under /etc/apache2/vhosts.d
| 1 2 3 4 5 6 7 8 9 10 | # vi /etc/apache2/vhosts.d/virtual_host.conf <VirtualHost *:80> ServerName sample1.korodes.com ServerAdmin [Administarator mail address] DocumentRoot /srv/www/htdocs/sample1.korodes.com ErrorLog /var/log/apache2/sample1.korodes.com.error.log CustomLog /var/log/apache2/sample1.korodes.com.access.log combined LogLevel warn </VirtualHost> | 
Edit hosts file(Example. : server IP address : 192.168.11.83)
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #vi /etc/hosts # # hosts         This file describes a number of hostname-to-address #               mappings for the TCP/IP subsystem.  It is mostly #               used at boot time, when no name servers are running. #               On small systems, this file can be used instead of a #               "named" name server. # Syntax: # # IP-Address  Full-Qualified-Hostname  Short-Hostname # 127.0.0.1       localhost # special IPv6 addresses ::1             localhost ipv6-localhost ipv6-loopback fe00::0         ipv6-localnet ff00::0         ipv6-mcastprefix ff02::1         ipv6-allnodes ff02::2         ipv6-allrouters ff02::3         ipv6-allhosts 192.168.11.83   Lepard 192.168.11.83   sample1.korodes.com  ←Add | 
| 1 | # systemctl restart apache2 | 
Similarly, create a directory and index.html file for the domain "sample2.korodes.com"
| 1 2 | # cd /srv/www/htdocs # mkdir sample2.korodes.com | 
| 1 2 3 | # vi sample2.korodes.com/index.html *************Virtual Host Site2 sample2.korodes.com ********* | 
Add to virtual_host.conf file
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | # vi /etc/apache2/vhosts.d/virtual_host.conf <VirtualHost *:80> ServerName sample1.korodes.com ServerAdmin <Administrator's email address> DocumentRoot /srv/www/htdocs/sample1.korodes.com ErrorLog /var/log/apache2/sample1.korodes.com.error.log CustomLog /var/log/apache2/sample1.korodes.com.access.log combined LogLevel warn </VirtualHost> <VirtualHost *:80> ServerName sample2.korodes.com ServerAdmin <Administrator's email address> DocumentRoot /srv/www/htdocs/sample2.korodes.com ErrorLog /var/log/apache2/sample2.korodes.com.error.log CustomLog /var/log/apache2/sample2.korodes.com.access.log combined LogLevel warn </VirtualHost> | 
Add to hosts file
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | # vi /etc/hosts # hosts This file describes a number of hostname-to-address # mappings for the TCP/IP subsystem.  It is mostly # used at boot time, when no name servers are running. # On small systems, this file can be used instead of a # "named" name server. # Syntax: # # IP-Address  Full-Qualified-Hostname Short-Hostname # 127.0.0.1 localhost # special IPv6 addresses ::1 localhost ipv6-localhost ipv6-loopback fe00:: ipv6-localnet ff00::0 ipv6-mcastprefix ff02::1 ipv6-allnodes ff02::2 ipv6-allrouters ff02::3 ipv6-allhosts 192.168.11.83 sample1.korodes.com 192.168.11.83 sample2.korodes.com  ←Add | 
| 1 | # systemctl restart apache2 | 
It is OK if "http://sample1.korodes.com" and "http://sample2.korodes.com" are displayed in the web browser as shown below.


4. Apache2 : Using PHP Scripts
Install and configure PHP so that PHP scripts are available
4.1 PHP Install
| 1 2 | # zypper -n install php8 php8-pear php8-mbstring apache2-mod_php8 # a2enmod php8 | 
| 1 2 3 4 | # vi /etc/php8/apache2/php.ini # Line 979:Time Zone Setting date.timezone = 'Asia/Tokyo' | 
| 1 | # systemctl restart apache2 | 
4.2 Create a PHP test page and check its operation
Create test page
| 1 2 3 | # vi /srv/www/htdocs/sample1.korodes.com/test.php <?php phpinfo(); ?> | 
| 1 | # systemctl restart httpd.service | 
Start a Web browser on the client PC, access "http://sample1.korodes.com/test.php", and if the test page you created is displayed as shown below, it is OK.(PHP version may be different)


