通知
すべてクリア

su権限について

投稿: 6
 tony
質問投稿者
コミュニティ参加日: 1か月前

pythonのbottleフレームワークを使って、ホームページ作った。サーバーにbottleをインストールできない、su権限が要求された。

そして、bottle.pyファイルを直接にサーバーのpublic_htmlフォルダーにアップロードし、pythonでプロジェクトを実行した。

実行はできましたが、そのまま終了されました。
質問:1、サーバーにライブラリーなどをインストールしたい時、どうすればいいですか?

2、自分でサーバープログラムを作って、サーバーでRunしたいときは可能ですか?

以上について、詳しく教えてください。よろしくお願いいたします。

10件の返信
投稿: 59
コミュニティ参加日: 2か月前

あくまでもレンタルサーバーなので、複数の人と共用ですから、契約者には管理者権限は与えられていません。
レンタルサーバーではなく、専用サーバーやVPSを契約しないと、管理者権限は与えられないでしょう(エックスサーバー/ネットオウル系のサービスでいえば「シンVPS」)。

一般ユーザー権限で可能な範囲であれば、ユーザーのディレクトリ内にインストールは可能です。

ちなみに、スターレンタルサーバーで採用されているのは Rocky Linux なので DNF/RPM系です。APTはありません。

Pythonは複数バージョンインストールされています。

$ python -V
Python 2.7.18
$ python3 -V
Python 3.6.8

いまどき Python 2.7 では無理ですので、 python3 を使わないといけないでしょう。

$ wget  https://bootstrap.pypa.io/pip/3.6/get-pip.py 
$ python3 get-pip.py --user

で、pip がユーザー権限でインストールされます。

$vi ~/.bashrc

でもして、export PATH="${HOME}/.local/bin:${PATH}" を付け加えとく。(このサーバに emacs や nano は入っていない。)

で、

$ pip install bottle --user

これでインストール自体はできますが、どこまで使えるかは、私は試していないのでわかりません。

 

参考: https://qiita.com/ymko/items/7757e9801ae784a8347c

 

 

返信
2件の返信
 tony
コミュニティ参加日: 1か月前

投稿: 6

ご返信ありがとうございます。無事にインストールできましたが、.pyのプログラム起動したら、直ぐに終了させられた。

server_ip:8080でアクセスしました。

127.0.0.1:8080ローカルでアクセスできました。

原因ご存知でしょうか?

返信
コミュニティ参加日: 2か月前

投稿: 59

参考までに、マニュアルにはこう書いてあります。

https://www.star.ne.jp/support/faq/service_server_program_introduction.php

動作確認済みプログラム」に記載されている外部プログラムについては、動作環境を満たしており導入が可能です。 それ以外の外部プログラムについては、当サービスでは精査をおこなっておりませんため、サーバーの無料お試し期間などで利用をお試しください。

なお、インストールにroot権限が必要なプログラムはご利用いただけません。

また、

https://www.star.ne.jp/support/faq/service_server_os.php

サーバーのOSには Linux を採用しています。
ディストリビューションなどの詳細については非公開としております。

なのですが、SSHログイン可能なので、uname -a すればカーネル情報が得られます。

また、ディストリビューションは当てずっぽうで lsb_release と cat /etc/os-release を試せばいいわけで。

カーネルが Ubuntu なのに、os-release からは Rocky Linux なので、おそらくは透過性の仮想化を使用しているのだろうと思います。

返信
投稿: 6
 tony
質問投稿者
コミュニティ参加日: 1か月前

ご返信ありがとうございます。無事にインストールできましたが、.pyのプログラム起動したら、直ぐに終了させられた。

server_ip:8080でアクセスしました。

127.0.0.1:8080ローカルでアクセスできました。

原因ご存知でしょうか?

返信
6件の返信
コミュニティ参加日: 2か月前

投稿: 59

サーバーマシン上で(当然)すでにウェブサーバーが動いていますが、80 や 443 以外に 8080 も使用しています(おそらく、リバースプロキシによる多段構成のため)。

ポート番号を 8080 以外の空きポート番号にすれば動きます。

ただそもそも、管理者権限のない、複数人が共用しているレンタルサーバーですから、
Bottle ウェブフレームワークの性質上、どこまで使いものになるか、疑わしいです。
例えば、不必要なポートが外部に対しては塞がれているでしょうし。

 

返信
 tony
コミュニティ参加日: 1か月前

投稿: 6

ポートを5566にし、プログラム起動できましたが、server_ip:5566でアクセスできませんでした。

ドメイン名:5566でもアクセスできません。バインドが必要でしょうか?

返信
コミュニティ参加日: 2か月前

投稿: 59

外部からは無理でしょう。おそらく、ファイアーウォールで塞がれています。

SSHでログインしたシェル上で http://localhost:5566/ では反応があるでしょう?

$ curl  http://localhost:5566/ 

 

返信
 tony
コミュニティ参加日: 1か月前

投稿: 6

curl 85.131.206.15:5577アクセスできました。

ブラウザからアクセスできない

返信
コミュニティ参加日: 2か月前

投稿: 59

ああ、もとのコードが 85.131.206.15:5577 で開いているんですね。
それならば、curl http://85.131.206.15:5577/ でアクセスできて、localhost (127.0.0.1) に対しては反応がないと思います。

ただ、アクセスができるのはローカルサーバ上からのみで、外部へは遮断されています。

返信
 tony
コミュニティ参加日: 1か月前

投稿: 6

ファイアーウォールがポートを開放してくれないと外部からのアクセス無理でしょう。

親切な解説を頂きました。大変、助かりました。ありがとうございます。

返信