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」が表示されます。