• ベストアンサー
  • 困ってます

apache2でユーザーディレクトリが

apache2でユーザーディレクトリを使いたいんですが ただのapacheではデフォルトでユーザーディレクトリがつかえるんですが 403でパーミッションを直して使えて apache2でいろいろ apache2.confなどにuserdir.cなどのモジュールを読み込ませたり sites-avalias/defaultに /home/*/public_htmlなど試してみたいんですが ダメみたいです ちょっと省略していますが ちなみにバージョンはApache/2.2.3です エラーは http://xxxxx/~ユーザー名 にアクセスすると 403ではなく404エラー フォルダが無いということは sites-avalias/defaultかapache2.confの設定がおかしいんでしょうか? ちゃんと /home/xxxx/public_htmlも作ってありますし パーミッションもあっています しかし <Directory /home/xxx/public_html>などの設定をしたいんですが sites-avalis/defaultに書くのか それともapache2.confに書くのかまぎらわしくて defaultのほうには<Directory /var/www>など書いてあって apache2.confにはmoduleなどいろいろ書いてあります apache2がhttpd.confではなくてまぎらわしくてよくわかりません それとバージョンなど古かったりなど違ったりして できないみたいです Apache/2.2.3でユーザーディレクトリを使っているかた 詳しく教えて下さいお願いします

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数165
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1
  • masa19
  • ベストアンサー率75% (22/29)

apache-2.2.4を使ってます。 ===== httpd.conf ====== # User home directories Include (設定ファイルのパス)/extra/httpd-userdir.conf ======================= の行のコメントをはずし、 ユーザディレクトリの設定は、 ===== extra/httpd-userdir.conf ==== UserDir public_html <Directory /home/*/public_html> AllowOverride FileInfo AuthConfig Limit Indexes Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec <Limit GET POST OPTIONS> Order allow,deny Allow from all </Limit> <LimitExcept GET POST OPTIONS> Order deny,allow Deny from all </LimitExcept> </Directory> ====================================== と、特に編集しないで使えています。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • Apache2実行ユーザでLinuxディレクトリへのアクセス制御をするには?

    Apache2・Tomcatを使用したWebアプリケーションよりLinuxOS(CentOS4.4)内の特定のディレクトリのファイル一覧を取得また特定ユーザにのみそのディレクトリ内へのファイルの書込みを許可するというようなアプリケーションを作成中です。またこのアプリケーションのユーザ以外は上記ディレクトリへのアクセス許可を与えないようにしたいと思っています。そこでApache2の実行ユーザと同ユーザによってLinuxOS内の該当ディレクトリにパーミッションを設定すれば実現できるのではと思い自分なりに設定してみたのですがうまくいきません。 クライアントとしてブラウザからApache2に接続したPCはLinux上ではApache2の実行ユーザとして認識されないのでしょうか? Apache2の実行ユーザはhttpd.confのUser nobody Group nobodyとなっているところを任意のユーザに変更しました。 User apa01 Group apa01(ここではapa01とします)Linux内にも同名のユーザ・グループを追加します。 LinuxOSのユーザはapa01(上記)とlxuserの2人がいるとします。 該当ディレクトリのパーミッションは d rwxr-x--- apa01 apa01 該当ディレクトリ名 とします。 これによりapa01と認識されている?と思われるwebアプリケーションのクライアントPCからは該当ディレクトり内のファイルを取得できました。ここでパーミッションをd rwxr-x--- lxuser lxuserと変更します。すると思惑ではWebアプリケーションのクライアントからはファイルの一覧が取得できなくなるはずでしたがしっかり取得してしまいます。ひょっとして・・と思いApache2のhttpd.confのUser Groupを変更してもしっかり取得してしまいます。 なにか考えが根本的に違っているのでしょうか? 長々と書きましたがもっと違う方法があるようでしたら是非ともご教授願えませんでしょうか?よろしくお願いいたします。

  • Apache2のユーザフォルダ設定

    初投稿です。みなさんのお知恵を貸してください。 常時接続のWindows2000の自宅マシン(以下、サーバ)にApache2をインストールして、複数人のユーザが自分用のホームページを置けるようにしたいと考えています。 このとき、サーバ上に各ユーザがデータを置く場所と、URLの関係を以下のようにしたいのですが、設定がよくわかりません。 サーバ E:\home\user1\public_html\index.html URL: ドメイン/user1/index.html おそらく、Apacheのhttpd.confファイルの以下の設定で何とかなるとは思うのですが、どうすればいいのかわかりません。 ネット上で調べてみましたが、これだという情報がありませんでした。 DocumentRoot "E:/home/" <Directory "E:/home/user**/public_html"> よろしくお願いします。

  • apache1.3でのUserDir設定について

    apache1.3.37を使用してます。 httpd.confを下記のようにして、UserDirを有効にしてます。 <IfModule mod_userdir.c> UserDir /home/*/public_html/index.html <Directory /home/*/public_html> AllowOverride All </Directory> </IfModule> ※UserDir関連では上記以外変更してません。 この設定で、http://www.xxxx.jp/~useridを開き /home/userid/public_html/index.htmlは表示されるのですが、 画像ファイル等だけ、DocumentRootに指定したディレクトリを 見に行ってしまいます。(エラーログにて確認) 当然、画像はDocumentRootで指定したディレクトリではなく 、/home/userid/public_htmlに入ってるので表示されず ×マークになります。 画像ファイル等も/home/userid/public_html直下から参照したいのですが どのようにすれば良いでしょうか? 設定が不足してるのでしょうか? また、/home/userid/public_html配下にcgiと言うディレクトリを 作成し、CGIを動作させたいのですが、その場合どのような設定を 追加すればよいのでしょうか? よろしくお願いします。

その他の回答 (1)

  • 回答No.2
  • Lean
  • ベストアンサー率72% (435/603)

UserDirディレクティブが設定されていないだけでは? 2.1.xのあるバージョン以降は、デフォルト(UserDirディレクティブ未設定)では使用出来ないはずですから。 これ以前だとデフォルトが「UserDir public_html」だったので使用出来ていたはずです。 設定ファイル構成がオリジナルのものと少し違っているようですから、具体的にどうすればいいかは書けませんが。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • apache2.2 の設定に関して

    過去ににはlinux で apache1.3x の頃だと思いますが、apache の設定を行ったことがあります。 今回さくらインターネットと契約して、各種サーバの設定をコンソール上から行うことになりました。OS が FreeBSD (バージョンは未確認、確認方法が不明な為)ですが、apche の基本的設定は同じだと理解しました。 apache のバージョンが、2.2 になっていますが、基本的設定は httpd.conf で良いことは調べて確認しました。 現状(契約した後)では、取得した独自ドメインで確認ページを見れることは確認しています。 http://www.hogehoge.jp/ 独自ドメインでのアクセスは OK でした。 httpd.conf を確認して、DocumentRoot "/home/htdocs" も確認しました。 次に個々のユーザが、public_html でホームページを公開出来るように、httpd.conf に以下の情報を追加しました。 <Directory "/home/*/public_html"> Options FollowSymLinks ExecCGI Includes AllowOverride All Order allow,deny Allow from all </Directory> と記載して、apache を再起動させ、 http://www.hogehoge.jp/~hoge/index.html にアクセスすると。 Not Found The requested URL /~hoge/index.html was not found on this server. と出ます。 httpd.conf には他には何も追記していません。他にも何処か設定する項目が有るのでしょうか、アドバイスを頂ければ幸いです。 ユーザ hoge は、ディレクトリ public_html を作成して、index.html は置いてあります。 # hogehoge.jp は架空のドメインで、取得したドメインではありません。

  • Debian sarge apache2

    /var/wwwの下に作成したindex.htmlを置いても、 http://xxx.xxxx.xx.xx/apache2-default/のテスト画面をWEB公開したままです。設定が下記になっているからだと思いますが、通常は、どの設定をどのように直すことになりますか? /etc/apache2/sites-available# cat default ・ ・ ・ ・ ・ ・ ・ DocumentRoot /var/www/ <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all # This directive allows us to have apache2's default start page # in /apache2-default/, but still have / go to the right place RedirectMatch ^/$ /apache2-default/ </Directory> ・ ・ ・ ・ ・ ・ ・

  • apache2を再インストール時に

    apache2で*.conf関係を編集していたのですが、VIコマンドを誤って、内容を全部削除してしまいました。 そのため、apache2をアンインストールしたところ、関連付けされてそうなディレクトリ(/etc/apache2など。これがそもそものトラブルかと)が残っていたので削除してしまいました。 その後、apache2を再びインストールしなおしたのですが、/etc/apache2以下の*.conf群がすべて復元されていませんでした。 復元方法もしくは、それぞれのファイル(初期状態)の入手先などを教えていただけないでしょうか?

  • apache2の削除

    環境:RedHat9 apache2.0.46 apache2を ./configure make make install の手順でインストールした後に、apache2を削除するには apache2の解凍ディレクトリ(/usr/local/src/httpd-2.0.46)と /usr/local/apache2ディレクトリーを削除するだけで良いのですか?

  • CentOS 5のApache2 UserDir

    さくらインターネットでCentOS 5の入った専用サーバを借りて勉強中です。 Apache2をインストールし、ユーザーディレクトリの設定をして、各ユーザーのホームディレクトリにあるpublic_htmlの中のディレクトリを参照するよう設定しました。 当初、下記サイトを参考に http://httpd.apache.org/docs/2.0/ja/mod/mod_user … 以下のように設定ファイルで設定したのですがうまくいきませんでした。(コメント部分は省略しています)。 --- <IfModule mod_userdir.c> UserDir public_html </IfModule> --- 上記設定で、http://○○○.com/~ユーザー名/にアクセスすると、ファイルが見つからない旨のエラーが表示されていました。 ログを確認すると以下のようになっていました。 --- [Sun Jul 31 20:56:19 2011] [error] [client ○○.××.△△.□□] File does not exist: /home/ユーザー名/\xe3\x82\xb3\xe3\x83\xa1\xe3\x83\xb3\xe3\x83\x88\xe5\xa4\x96 \xe3\x81\x97\xe3\x81\xbe\xe3\x81\x97\xe3\x81\x9f --- そこで、apacheの設定ファイルを以下のように書き直したところ --- <IfModule mod_userdir.c> UserDir /home/*/public_html </IfModule> --- 無事にサイトにアクセス出来るようになりました。 一応問題は解決したとはいえ、できれば --- <IfModule mod_userdir.c> UserDir public_html </IfModule> --- の方がなぜうまくいかなかったのかの原因も知りたいです。 原因と考えられるのは、さくらのサーバーを借りたときに最初のサーバーのデフォルトの文字が LANG=C だったのを、日本語を使うために LANG="ja_JP.UTF-8" に変更したことです。 が、英語名のディレクトリ名で問題が起こるか?と言う疑問と、文字コードが原因としてどうやればうまく行くんだ?という疑問があります。 どなたか原因が分かる方はいらっしゃいますでしょうか? よろしくお願いいたします。

  • RedHat9+Apache2でテストページしか表示しない

    RedHat9+Apache2でサーバ構築しようとしているところです。 Apache2は最新版をDLしてきました。 httpd.confの設定を変えたつもりなのですが、反映されてないようです。 DocumentRoot "/home/www" そのちょっと下 <Directory "/home/www"> としてApacheを再起動しますが、デフォルトテストページを表示したまま変化ありません。 もちろん/home/wwwにはindex.htmlを置いています。 どこを確認したら良いでしょうか? また、必要な情報がありましたらすく書き込みします。 以上お願いします。

  • apache2とPHP5について

    環境はDebian etchで、これにapache2とPHP5をインストールしてみました。libapache2-mod-php5とphp-pear php5-cgi php5 php5-gdなどをインストールして、さあ、PHPのCGIを動かそうというところでつまずきました。 ユーザディレクトリのモジュールを導入してUserdir.confでOptions ExecCGI(+なし)を指定してやりましたがこのCGIを起動しようとするとダウンロード画面になって、ダウンロードができませんと表示されます。ちなみにperlはちゃんと動きます。そして、ドキュメントルートである、/var/wwwのほうにもCGIを設置して起動してみましたが、同じ症状に見舞われます。 エラーログを見てみるとユーザディレクトリのほうに設置しているCGIはPermission deniedになっていました。権限はちゃんと設定してあるのにです。 /var/wwwのほうに設置したCGIはExecCGIが指定されていないと書いてありました。設置方法はよくわからないのですが。 このような場合、どうすれば解決できますでしょうか?

  • Apache2 - CGIで出力されたファイルの所有者を変更するには?

    Gentoo LinuxでApache2を動かしています。 Apache2の質問です。 UserDirで実行された(mod_userdirで処理される)CGIまたはPHPスクリプトが出力するファイル/ディレクトリの所有者を、リクエストされたユーザディレクトリのuid, gid へ自動的に変更する方法を教えてください。 レンタルサーバーではこのような動作を見掛けるし一般的だと思うのですが設定方法がわかりません。 よろしくお願いします。

  • apache1とapache2

    最近apacheの本を購入したのですが、その本にapache1は 安定していると書かれていて、気になったので質問させて 頂きます。 ※個人的にはapache2の新機能を読んでapache2にしたい  と思っています。 1.apache2ってまだ安定してないんでしょうか? 2.apache2を使用してて何か問題が発生した事がありま   すか? 3.将来的にapache1は無くなるのでしょうか? 4.apache2 + PHP + PostgreSqlの組み合わせで   何か注意点ってありますか?

  • ローカルのPHPファイルを表示できない

    LinuxでPHPの開発の勉強をしようとLAMPのインストールをしています。 EeePC 1000HにUbuntu 10.10を入れています。 昨日、Apache2.2 PHP5 MySQLを、apt-getで入れました。 info.phpというファイルを作り、 <?php phpinfo(); ?> と書いて保存しました。 Apache2.2では、localhostのデフォルトのDocumentRootが  /etc/apache2/sites-available/default に指定されていて、   /var/www  となっています。ここにinfo.phpを保存してfirefoxで  http://localhost/info.php を開くと、無事にinfoページがでました。ここまでは問題ありません。 次に、UserDirをa2enmodコマンドを使って設定し、 ユーザー(hoge)の homeディレクトリ以下にpublic_htmlをつくりました。この下に、 通常のindex.htmlファイルを保存して、 ~hoge/index.html が開くことも 確認しました。 その後で、 /home/hoge/public_html/ 以下にinfo.phpを保存し、 firefoxで開こうとすると、「アプリケーションの選択もしくは保存」という いつものダイアログが出てきてしまいます。 このように、/var/www に置いた場合と、public_html以下に置いた場合で firefoxの挙動が変わります。 apache2の /var/www へのアクセス指定するファイルが、 apache2/sites-available/defaultで、以下のようになっています。 <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> この中身の部分を、 apache2/mods-available/userdir.conf にコピペし、以下のようにしました。 <Directory /home/*/public_html>  Options Indexes FollowSymLinks MultiViews  AllowOverride None  Order allow,deny  allow from all   </Directory> apache2もリスタートしましたが、結果は変わりませんでした。 ここまでで行き詰まりました。 どなたか解決法を教えていただけませんか。 よろしくお願いします。

    • 締切済み
    • PHP

専門家に質問してみよう