已經安裝了 Apache Http Server、Perl
但執行 test.pl 時會顯示 *.pl 的原始文字檔而不會執行 CGI 指令,請問要如何設定呢?
NAS:AS1102TL
如何架設cgi
Re: 如何架設cgi
我把你的問題提交到 ChatGTP 了,得到了不少有用的提示。你可以試試。
Re: 如何架設cgi
好的,已經找到問題點了~
-------------------------------------------------------------------------------------------------------
以下是有修改的內容:
先將檔案複製到WEB方便用WINDOWS修改(請依實際存放位置做修改)
cp -p /volume1/.@plugins/AppCentral/httpd-2.4.43/data/conf/apache2.conf /volume1/Web/apache2.conf
修改 /volume1/Web/apache2.conf 以下內容
LoadModule cgi_module /volume1/.@plugins/AppCentral/httpd-2.4.43/data/lib/apache2/modules/mod_cgi.so
<Directory "/volume1/Web/cgi-bin">
AllowOverride All
Options +ExecCGI
AddHandler cgi-script .cgi .pl
Require all granted
</Directory>
修改後將檔案複製回去
cp -p /volume1/Web/apache2.conf /volume1/.@plugins/AppCentral/httpd-2.4.43/data/conf/apache2.conf
-------------------------------------------------------------------------------------------------------
WINDOWS 存的CGI檔案需要在 SSH 執行此指令
把換行格式轉成 Unix 格式CRLF(Windows) → LF(Unix )
將以下存成 CRLF-LF.pl(utf-8格式),然後放在 /Web/cgi-bin
並在SSH中執行 dos2unix /volume1/Web/cgi-bin/CRLF-LF.pl
然後用網頁開啟 CRLF-LF.pl 檔案,將 *.cgi *.pl 全部轉換一次
CRLF-LF.pl檔案內容:開始
#!/bin/sh
echo "Content-Type: text/plain; charset=utf-8"
echo ""
TARGET_DIR="/volume1/Web/cgi-bin"
echo "
echo ""
# 找出並處理 .pl / .cgi 檔案
find "$TARGET_DIR" -type f \( -iname "*.pl" -o -iname "*.cgi" \) | while read file; do
# 嘗試用 dos2unix 處理
if dos2unix "$file" >/dev/null 2>&1; then
echo "
else
echo "
fi
done
echo ""
echo "
CRLF-LF.pl檔案內容:結束
========================================================================
WINDOWS 安裝 SSH
1.以系統管理員開啟 windows powershell
2.安裝 OpenSSH Server,輸入以下指令:
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
3.成功安裝後返回以下輸出:
Path :
Online : True
RestartNeeded : False
4.運行以下命令來 啟動 sshd service
Start-Service sshd
5.運行以下命令來開啟自動帶啟 sshd service
Set-Service -Name sshd -StartupType 'Automatic'
6.確認防火牆規則已配置。 應該由安裝程序自動創建。 運行以下命令來驗證
(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue | Select-Object Name, Enabled)
7.表示 OpenSSH-Server-In-TCP 防火牆規則已配置 (allow 22 port)
Name Enabled
---- -------
OpenSSH-Server-In-TCP True
8.進入 ssh, -p 6066 是指定通訊埠,預設是22,如果沒有改可以不用輸入
ssh -p 6066 帳號@100.100.100.200