デフォルトの仮想ホストをすべて削除し、必要な変更をすべて行ったのに、メインの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://localhost
owncloud のログイン画面が起動します。ネットワークに接続されているどのコンピュータからも、コンピュータのローカル IP アドレスでアクセスできます。たとえば、コンピュータのローカル アドレスが 192.168.0.20 の場合、ネットワーク上の他のコンピュータは、次の方法で owncloud にアクセスできます。http://192.168.0.20
ネットからアクセスできるようにするには、ルータで適切なポートを開く必要がありますが、ここでは説明しません。