リモート操作のために ssh をすでに活用していると思いますが、現状ではApacheを起動したとしても「It works!」という文字が出てくるだけです。
そこで今回はローカルで作成したhtmlやcssをリモートのFreeBSDに転送したいと思います。
まずはデスクトップ上にファイルを作り、そこに作成したhtmlやcss、画像などを入れておきます。
ターミナルを開きます。
ターミナル1
MacBook:~ user$ cd Desktop
MacBook:Desktop user$
#ディレクトリをデスクトップに移動
MacBook:Desktop user$ scp -r file name@192.168.56.102:/usr/local/www/apache24/data
#-r は複数のものを再帰的に転送するのに有効です
#xxx is not a regular file と言われるようならば scp の後に -r を追記して下さい
#file はDesktopにある転送したいファイル名です
#name@192.168.56.102はSSHの時と同様のやり方その後ろに転送先つまりFreeBSD上のどこに転送したいかのディレクトリを指定します
Password:
The authenticity of host '192.168.56.102 (192.168.56.102)' can't be established.
ECDSA key fingerprint is SHA256:PMFNYJV1rQdwpi3hGalT0oK6ukJD3Y9YXxcoPxfSPwA.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.56.102' (ECDSA) to the list of known hosts.
Password for user@group:
scp: /usr/local/www/apache24/data/file: Permission denied
#FreeBSD上の指定されたディレクトリに対して権限がないと言われました
ではもう1つターミナルを開き、FreeBSDにSSHでリモートログインし、先ほどのディレクトリの権限を変更しましょう。
ターミナル2(FreeBSD)
$ su
# cd /usr/local/www/apache24
転送先のディレクトリに移動
# ls
cgi-bin data error icons
現在このようなディレクトリが存在しているようです
このうちdataのpermissionを変更します
# chmod 777 data
これで完了です
再びターミナル1に戻ります
ターミナル1
MacBook:Desktop user$ scp -r file name@192.168.56.102:/usr/local/www/apache24/data
Password for name@group:
.DS_Store 100% 8196 3.5MB/s 00:00
style.css 100% 4468 2.1MB/s 00:00
Thumbs.db 100% 46KB 13.0MB/s 00:00
tool.jpg 100% 80KB 14.0MB/s 00:00
for_html.png 100% 685KB 24.7MB/s 00:00
switch.jpg 100% 68KB 16.2MB/s 00:00
second.jpg 100% 28KB 10.3MB/s 00:00
lan.jpg 100% 54KB 12.5MB/s 00:00
security.jpg 100% 56KB 12.8MB/s 00:00
third.jpg 100% 33KB 12.2MB/s 00:00
first.jpg 100% 36KB 11.4MB/s 00:00
bg.jpg 100% 542KB 28.2MB/s 00:00
for_web.html 100% 4899 2.3MB/s 00:00
for_web.txt 100% 4899 2.4MB/s 00:00
これで完了です
続いてFreeBSDの設定を変えていきます。今までWebで表示していたhtmlは
/usr/local/www/apache24/data/index.html
でした。しかし、先ほどファイルごと転送したため、参照してほしいのは
/usr/local/www/apache24/data/file/xxx.html
というディレクトリです。
では、httpd.confをいじります。
FreeBSD
$ su
# vim /usr/local/etc/apache24/httpd.conf
...
変更前
DocumentRoot "/usr/local/www/apache24/data"
<Directory "/usr/local/www/apache24/data">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
変更後
DocumentRoot "/usr/local/www/apache24/data/file"
<Directory "/usr/local/www/apache24/data/file">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<IfModule dir_module>
DirectoryIndex xxx.html
</IfModule>
これで完了です
vimを終了して下さい
Apacheを再起動させます
# apachectl restart
Performing sanity check on apache24 configuration:
Syntax OK
Stopping apache24.
Waiting for PIDS: 92739.
Performing sanity check on apache24 configuration:
Syntax OK
Starting apache24.
ちゃんと変更が確認できました。