Contents
WEB server (Apache)
Apache Installation
①system update
1 2 3 |
# slackpkg update # slackpkg upgrade slackpkg # slackpkg new-config |
➁httpd installation
1 |
# slackpkg upgrade httpd |
➂Apache version check
1 2 3 |
# httpd -v Server version: Apache/2.4.58 (Unix) Server built: Oct 19 2023 14:01:28 |
④Enabling and Starting Apache
1 2 |
# chmod +x /etc/rc.d/rc.httpd # /etc/rc.d/rc.httpd restart |
⑤Open ports for web server use
1 2 3 4 |
# ufw allow http Rule added # ufw reload Firewall reloaded |
Connect to "http://server IP/" with any browser, and if it looks like the following, it's OK
Editing the Apache Configuration File
①The configuration file is /etc/httpd/httpd.conf
Edit this file
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 28 |
# vi /etc/httpd/httpd.conf Line 215 Change to administrator email address ServerAdmin [Administrator's email address] Uncomment line 224 and change to your domain name [FQDN] ServerName [domain name:80] Line 262 Indexes deleted Options FollowSymLinks Line 269 change AllowOverride ALL Line 282 Adding files accessible only by directory name <IfModule dir_module> DirectoryIndex index.html index.htm index.pl index.php </IfModule> Line 429 Uncomment AddHandler cgi-script .cgi Line 516 Uncomment # Various default settings Include /etc/httpd/extra/httpd-default.conf Add to the last line ServerTokens Prod |
➁Restart Apache
1 |
# /etc/rc.d/rc.httpd restart |
Confirmation of CGI Script Usage
①Confirmation of CGI availability
1 2 |
# grep -n "^ *ScriptAlias" /etc/httpd/httpd.conf 365: ScriptAlias /cgi-bin/ "/srv/httpd/cgi-bin/" |
The above is displayed and available under "/srv/httpd/cgi-bin/".
➁Edit httpd.conf
1 2 3 4 5 |
# vi /etc/httpd/httpd.conf Uncomment lines 168,171 LoadModule cgid_module lib64/httpd/modules/mod_cgid.so LoadModule cgi_module lib64/httpd/modules/mod_cgi.so |
➂Create test scripts and check operation
1 2 3 4 |
# vi /srv/httpd/cgi-bin/index.cgi #!/usr/bin/python3 print("Content-type: text/html\n") print("CGI Script Test Page") |
1 2 3 4 |
# chmod 755 /srv/httpd/cgi-bin/index.cgi # /etc/rc.d/rc.httpd restart # curl localhost/cgi-bin/index.cgi CGI Script Test Page |
PHP Installation
①Install
1 |
# slackpkg upgrade php |
OK click
➁Editing httpd.conf
1 2 3 4 |
# vi /etc/httpd/httpd.conf Line 538 Uncomment Include /etc/httpd/mod_php.conf |
➂Edit /etc/httpd/mod_php.conf
1 2 3 4 |
# vi /etc/httpd/mod_php.conf Add addtype application/x-httpd-php .php .php3 .php4 .php7 .php8 |
④Edit /etc/php.ini file
1 2 3 4 5 6 7 8 9 10 |
# vi /etc/php.ini Line 694 change post_max_size = 300M Line 846 change upload_max_filesize = 200M Line 1005 Uncomment and add date.timezone = Asia/Tokyo |
⑤Restart Apache
1 |
# /etc/rc.d/rc.httpd restart |
⑥Create the following file to confirm PHP startup
1 2 3 4 5 |
# vi /srv/httpd/htdocs/info.php <?php phpinfo(); ?> |
If you access http://server IP/info.php with any browser and see the following screen, PHP is working properly.
Virtual Host Settings
Assign and configure the domain name [slack.korodes.com] to the document root [/srv/httpd/htdocs/slack.korodes.com] directory for the virtual host to operate under
Create a new slack-vhosts.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# cd /etc/httpd/extra/ # vi slack-vhosts.conf <VirtualHost *:80> ServerAdmin [Administrator's email address] DocumentRoot "/srv/httpd/htdocs/slack.korodes.com" ServerName slack.korodes.com ErrorLog "/var/log/httpd/slack.korodes.com-error_log" CustomLog "/var/log/httpd/slack.korodes.com-access_log" common <Directory "/srv/httpd/htdocs/slack.korodes.com/"> Options FollowSymLinks AllowOverride All </Directory> </VirtualHost> |
Edit httpd.conf file
1 2 3 4 |
# vi /etc/httpd/httpd.conf Line 508 add Include /etc/httpd/extra/slack-vhosts.conf |
Create document root directory
1 |
# mkdir /srv/httpd/htdocs/slack.korodes.com |
Restart Apache
1 |
# /etc/rc.d/rc.httpd restart |
MariaDB Install
①Install
1 |
# slackpkg upgrade mariadb |
➁Activate and start MariaDB
1 2 3 4 5 6 7 8 9 10 11 |
# chmod +x /etc/rc.d/rc.mysqld Run installation scripts to set up your own internal database # mysql_install_db Give MySQL users ownership of the necessary MySQL files # chown -R mysql.mysql /var/lib/mysql Mariadb activation and startup # /etc/rc.d/rc.mysqld enable # /etc/rc.d/rc.mysqld start |
➂Check the version of MarisDB
1 2 |
# mariadb -V mariadb Ver 15.1 Distrib 10.5.24-MariaDB, for Linux (x86_64) using readline 5.1 |
④Set root user password
1 |
# mysqladmin -u root password '[Any password]' |
⑤Confirmation of MariaDB startup
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# mysql -u root -p Enter password: ←Password set above Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 4 Server version: 10.5.24-MariaDB Source distribution Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | +--------------------+ 4 rows in set (0.000 sec) MariaDB [(none)]> exit; Bye |
⑥Security of MariaDB installation
Change the password for the root user of the MariaDB server.
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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# mysql_secure_installation NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and haven't set the root password yet, you should just press enter here. Enter current password for root (enter for none): OK, successfully used password, moving on... Setting the root password or using the unix_socket ensures that nobody can log into the MariaDB root user without the proper authorisation. You already have your root account protected, so you can safely answer 'n'. Switch to unix_socket authentication [Y/n] y Enabled successfully! Reloading privilege tables.. ... Success! You already have your root account protected, so you can safely answer 'n'. Change the root password? [Y/n] y New password: Re-enter new password: Password updated successfully! Reloading privilege tables.. ... Success! By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] y ... Success! Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] y ... Success! By default, MariaDB comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] y - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] y ... Success! Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB! |
To start MariaDB from then on
1 2 |
# mysql -u root -p Enter password: ←Password changed in ⑥ above |