問題タブ [cgi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Web サーバーでの .cgi の問題
これを test.cgi として Web サーバーに保存しました。www.mysite.com/test.cgi で実行できませんでした
どうすれば問題を解決できますか?
[編集]最初の回答の後
- test.cgi は実行可能です ($ chmod +x test.cgi を実行します)
- 私はアパッチを使用しています。
- これは .bashrc export PATH=${PATH}:~/bin にあります
- Python モジュール MySQLdb がインストールされています。
- コードにはスマート クォートがありません。
[編集] 2番目の回答の後
PythonがMySQLデータベースと通信するために必要なMySQLdbモジュールをインストールしていないため、そのエラーが発生しています
システムに MySQLdb をインストールしました。それらをインポートできるので、モジュールは機能します。しかし、www.[mysite].com/test.cgi にアクセスしても同じエラーが表示されます。
[編集]
質問がよくわからない
connect() パラメータは正しいですか? MySQL は localhost のデフォルト ポートで実行されていますか?
サーバーでMySQLを実行しています。connect() パラメーターに関する質問はここで関連していますか?
SELECT文は正しいですか?
SELECT ステートメントなどの SQL ステートメントが正しいかどうかということですか? まだ SQL クエリを使用したことがありません。ここでそれらが必要ですか?
python - ファイルアクセスのためのWeb環境での権限昇格
シリアル デバイスにアクセスできるように、Web 環境で持っている権限を昇格させたい状況があります。
特定のケースは、 で起動するモデムを構成するための Web インターフェイスがある場合です/dev/ttyUSB[0-9]
。
エンド ユーザーによって 0 個以上のモデムが接続されます。/sys/devices
ATコマンドを使用してモデムを読み取って通信することにより、USBワイヤレスモデムを識別できるソフトウェアを作成しています。
デバイスを開いて、次のようなことができるようにしたいと思います。
問題は、それpyserial
がこれを行うことです: self.fd = os.open(self.portstr, os.O_RDWR|os.O_NOCTTY|os.O_NONBLOCK)
portstr が であるシリアルポートを開きますが、権限のないユーザー/dev/ttyUSB0
としてそれを行います。nobody
このシステムのシリアル ポートは root:uucp が所有しており、0660 (つまりrw-rw----
) として設定されています。
nobody
開発者でファイルを開くための権限をできるだけ少なくする必要があるユーザーにとって、最善の方法は何ですか?
私が検討するアイデア:
- を使用してサブプロセスで物事を行う
sudo
。 - 内のファイルのパーミッションを変更します
/dev/
(udev を使用してこれを適切に行う方法についての説明を歓迎します!) - 考慮していない別の API またはソフトウェアの使用。
php - LAMPホスティングでPythonのCGIを避けるのはなぜですか?
私はPHPを何年も使用しています。最近、 PHPが時代遅れである、最新のプログラミング言語がより簡単で、より安全であるなどと述べている多くのフォーラム投稿に出くわしました。
そこで、Pythonの学習を始めることにしました。私はPHPの使用に慣れているので、次のコマンドを使用して.htaccessファイルをアップロードすることでページの作成を開始しました。
次に、私のサンプルページは次のようになります。
これは正常に機能します。しかし、投稿の中で、 CGIはPythonを使用するための最良の方法ではないというコメントに出くわしました。もちろん、それは最良の方法が何であるかについては言及していませんでした。
CGIを使用することがPythonを使用する最良の方法ではないのはなぜですか?代替手段は何ですか?
単純なPythonサイトを設定する他の方法はありますか?.htaccessファイルと.pyファイルの外で見なければならない完全に異なるパラダイムはありますか?
関連している
apache2 - Windows/Apache2.2 環境での Windows loginID ヘルプ
些細な問題のように見える問題を解決するために、私は本当に助けを借りることができました. 要約すると、Windows 環境の Apache で実行されている Perl .cgi にアクセスするユーザーの Window の loginID を知りたいです。
これが私の基本的なApache2 confの追加です:
---- httpd.conf の開始 -----
---- httpd.conf の終了 ------
上記のサイトは Apache モジュール mod_auth.so をロードするように要求していますが、デフォルトの Apache2 インストールでは見つかりません。また、ご覧のとおり、mod_auth_sspi-1.0.4-2.2.2 モジュールを手動で Apache2 環境に追加しました。
ここで、 http://localhost/cgi-bin/test.cgiとhttps: //localhost/cgi-bin/test.cgi の両方を試してみると、 http/ の REMOTE_USER の方法で何も表示されません環境変数。https 呼び出しで大量の SSL 変数が表示されるため、SSL が機能していることはわかっています。また、SSL の要件はありませんが、上記のリンクに Windows ログイン情報を取得するために必要であると記載されているため、SSL のみを使用しています。
洞察力をいただければ幸いです。参考になれば、httpd.conf ファイル全体を喜んで共有します。基本的に、繰り返しますが、私が探しているのは、Windows/Apache2.2 ホスティング環境の Perl .cgi で Windows loginID を取得する方法だけです。
皆様のご協力に感謝いたします。
サケル・ガニ
python - WindowsとLinuxプラットフォーム用のPythonWebアプリケーションを同時に作成できますか?
Windows(IIS Webサーバー)およびLinux(Apacheまたはlighttpd)でホストできるWebアプリケーションを変更せずに作成できますか?
CGI?多分何か新しいもの?WSGI | FastCGI?
web-services - いくつかの特定の基準を持つ http サーバーが必要です
プロジェクト用の Web サーバーを探していましたが、満足することができませんでした。Windows 用のコンパイル済み CGI スクリプト (exe) をサポートし、相対パスを使用できる http サーバーが必要です。サーバーが可能な限り最小限/軽量であることができれば、それはボーナスです。
これまでの検索で最も困難だったのは、CGI の両方をサポートし、相対パスをサポートするサーバーを見つけることです。相対パスとは、サーバーのルート ディレクトリを意味します。これをプロジェクトと一緒にパックできるようにしたいので、conf ファイル内のパスを絶対パスにすることはできません。
すべての基準を満たすことができたのは Abyss Web だけですが、そのライセンスは所有権があり、個人使用のみが無料です。
編集:私は自分のやり方でエラーを見つけました。ルートでcmdを介してプロセスを開始しました。したがって、apache が conf で使用していた相対パスは、ルートにいる場所からの相対パスでした。ルートディレクトリに変更してそこでプロセスを実行すると、gbjbaanb が述べたようにすべてが機能します。しかし、私の質問の文脈はまだ有効かもしれないと思います。プログラム (C# .NET) でサーバーをプロセスとして実行する場合、「現在のディレクトリ」は何になるでしょうか? 起動する前に、現在のディレクトリ環境変数を変更したことを確認する必要がありますか?
perl - Perl CGI スクリプトの起動時間を短縮するにはどうすればよいですか?
私はいくつかの CGI スクリプトを開発しており、「使用」を使用して多くのモジュールをインポートするときに生成される「開始時間」を短縮する解決策を見つけようとしています。
アップデート:
提供されたソリューションは素晴らしいものですが、私が取り組んでいるスクリプトは、コンソール モードと CGI モードの両方で実行され、いくつかの典型的な HTTP 環境変数が存在するかどうかをチェックします。
「コンソール モード」ではデータを「通常どおり」ダンプし、「html モード」ではリアルタイムで置換を行い、他の HTTP ヘッダーをクライアントに送信します。
どちらの場合も起動時間を改善したいと思います。