メインのDocumentRootが拒否され、あらゆることを試しました

メインのDocumentRootが拒否され、あらゆることを試しました

デフォルトの仮想ホストをすべて削除し、必要な変更をすべて行ったのに、メインのDocumentRootが移動を拒否しているので、イライラしています。

root@example:/etc/apache2# apache2ctl -S
VirtualHost configuration:
*:80                   dev.example.com (/etc/apache2/sites-enabled/dev.example.com.conf:1)
*:443                  dev.example.com (/etc/apache2/sites-enabled/dev.example.com.ssl.conf:2)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
Mutex rewrite-map: using_defaults
Mutex ssl-stapling: using_defaults
Mutex ssl-cache: using_defaults
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33

デフォルトのものは何もありません

root@example:/etc/apache2# ls -lha sites-enabled/
total 8.0K
drwxr-xr-x 2 root root 4.0K May  5 15:12 .
drwxr-xr-x 9 root root 4.0K May  5 15:03 ..
lrwxrwxrwx 1 root root   48 May  5 15:01 dev.example.com.conf -> ../sites-available/dev.example.com.conf
lrwxrwxrwx 1 root root   52 May  5 15:12 dev.example.com.ssl.conf -> ../sites-available/dev.example.com.ssl.conf

そして、私はDocumentRootをvhostsに配置することを宣言しました

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName dev.dev.example.com
    Redirect permanent / https://dev.dev.example.com/


    <Directory />
        Options +FollowSymLinks
        AllowOverride All
    </Directory>

    DocumentRoot /var/www/owncloud
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

そして

<VirtualHost *:443>
#               ServerAdmin webmaster@localhost
                ServerName dev.dev.example.com
                DocumentRoot /var/www/owncloud

                # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
                # error, crit, alert, emerg.
                # It is also possible to configure the loglevel for particular
                # modules, e.g.
                #LogLevel info ssl:warn


                <Directory />
                    Options +FollowSymLinks
                    AllowOverride All
                </Directory>
...
...
...
</VirtualHost>

ここにowncloud.confがあります

Alias / "/var/www/owncloud/"
<Directory "/var/www/owncloud">
  Options +FollowSymLinks
  AllowOverride All

  <IfModule mod_dav.c>
        Dav off
  </IfModule>

  SetEnv HOME /var/www/owncloud
  SetEnv HTTP_HOME /var/www/owncloud
</Directory>

<Directory "/var/www/owncloud/data/">
  # just in case if .htaccess gets disabled
    Require all denied
</Directory>

では次に何をすればいいのでしょうか。メインのDocumentRootは消えません。

答え1

まず、実際に作業を進める前に、Web サイトが機能しているかどうかを確認したいと思います。テストを行うために、次の手順に従ってください。

まず、/var/www/フォルダーに移動して、owncloud の名前を owncloud-test に変更します。owncloud という新しいフォルダーを作成します。そのフォルダーを開いて、index.html というファイルを作成します。そのファイルを開いて、「This is a test」と入力し、保存します。

次に、www フォルダーの権限が正しく設定されていることを確認するために、ターミナルに次のように入力します。

sudo chown -R www-data:www-data /var/www

それが終わったらタイプします

sudo service apache2 restart

次にウェブブラウザを開いて

http://localhost

「これはテストです」と書かれた白いページが表示されます。

それでも問題が解決しない場合は、ブラウザでページにどのようなエラーが表示されるかをお知らせください。また、/var/log/apache2/error.log をチェックして、そこにエラーがリストされているかどうかを確認してください。

うまく動作する場合はお知らせください。その時点で owncloud が動作するように支援します。

この時点で通信が停止したため、正常に動作したと見なし、元の owncloud を元に戻し、フォルダーの所有者が適切であることを確認する方法を説明します。そうすれば、owncloud が動作するはずです。

フォルダーに戻り/var/www、先ほど作成した owncloud フォルダーを削除します。owncloud-test フォルダーの名前を owncloud に戻します。sudo chown -R www-data:www-data /var/wwwもう一度実行して、名前を変更したり何かを変更したりしたときに所有者が変更されていないことを確認します。

これで準備は完了です。アクセスすると、http://localhostowncloud のログイン画面が起動します。ネットワークに接続されているどのコンピュータからも、コンピュータのローカル IP アドレスでアクセスできます。たとえば、コンピュータのローカル アドレスが 192.168.0.20 の場合、ネットワーク上の他のコンピュータは、次の方法で owncloud にアクセスできます。http://192.168.0.20ネットからアクセスできるようにするには、ルータで適切なポートを開く必要がありますが、ここでは説明しません。

関連情報