Debian 11.2にCGI を有効にして Ruby スクリプトを利用する方法

環境
OSバージョンを確認します

# cat /etc/debian_version
11.2

apache2バージョンを確認します

# apache2 -v
Server version: Apache/2.4.53 (Debian)
Server built: 2022-03-14T16:28:35

Rubyスクリプトを利用する手順
1.Ruby をインストールします

# apt -y install ruby

rubyバージョンを確認します

# ruby --version
ruby 2.7.4p191 (2021-07-07 revision a21a3b7d23) [x86_64-linux-gnu]

2.CGI モジュールを有効にします

# a2enmod cgid
Enabling module cgid.
To activate the new configuration, you need to run:
systemctl restart apache2

apache2を再起動します

# systemctl restart apache2

3. テストスクリプトを作成します

# cat > /usr/lib/cgi-bin/testscript <<'EOF'
#!/usr/bin/ruby
print "Content-type: text/html\n\n"
print "test cgi hello wolrd\n"
EOF

ファイルの権限を付与します
# chmod 705 /usr/lib/cgi-bin/testscript
動作確認

# curl http://localhost/cgi-bin/testscript
test cgi hello wolrd

4.デフォルト以外のディレクトリで CGI の実行を許可します。
ディレクトリを作成します

# mkdir /var/www/html/rubytest

配置ファイルを設定します
# vi /etc/apache2/conf-available/rubyenabled.conf
以下の内容を編集します

<Directory "/var/www/html/rubytest">
    Options +ExecCGI
    AddHandler cgi-script .cgi .rb
</Directory>

配置ファイルを有効にします

# a2enconf rubyenabled
Enabling conf rubyenabled.
To activate the new configuration, you need to run:
  systemctl reload apache2

apache2を再起動します

# systemctl restart apache2

5.設定したディレクトリで CGI テストページを作成して動作確認をします
# vi /var/www/html/rubytest/index.rb
以下の内容を編集します

#!/usr/bin/ruby

print "Content-type: text/html\n\n"
print "<html>\n<body>\n"
print "<div >\n"
print "Ruby study hellwo world"
print "\n</div>\n"
print "</body>\n</html>\n"

ファイルの権限を付与します

# chmod 705 /var/www/html/rubytest/index.rb

6.動作確認

「http://192.168.71.144/rubytest/index.rb」にアクセスします。
「Ruby study hellwo world」が表示されます。

 

Debian 11

Posted by arkgame