■1.設定概要
基本的には最近のWebサーバはPUTメソッドがデフォルトでは禁止されている。HTTPのPUTメソッドによるファイルのアップロードを実現するには、Apacheの場合はWebDavが必要。
以下も参照設定
https://httpd.apache.org/docs/2.4/ja/mod/mod_dav.html

※DavLockDBの設定がないとCentOS7ベースのOSは以下のエラーが出る
A lock database was not specified with the DAVLockDB directive. One must be specified to use the locking functionality.  [500, #401]
apacheがインストールされているとして、設定は以下

①httpd.confの最後に以下を追加
vim conf/httpd.conf

DavLockDB "/var/tmp/DavLock"

<Directory "/var/www/html/dav">
        Require all granted
        Dav On
</Directory>

②Davディレクトリ追加
mkdir -p /var/www/html/dav
chmod 777 /var/www/html/dav

③apacheを再起動
systemctl restart httpd

■2.PCからの操作
①アップロード (上書きも可能)
curl -T a.txt --url http://10.1.1.115/dav/a.txt -X PUT

②ファイル取得
curl -O http://10.1.1.115/dav/a.txt

以下だと、ファイルを取得せずに中身を表示
curl --url http://10.1.1.115/dav/a.txt -X GET

③ファイルDELETE(削除)
curl --url http://10.1.1.115/dav/a.txt -X DELETE

■3.WebDavの設定 流し込み
#コンフィグバックアップ
cd /etc/httpd/conf/
sudo cp httpd.conf httpd.conf.org

#PUTメソッド利用のため、mod_davモジュールが有効になっていることを確認(AmazonLinux2ではデフォルト有効)
less /etc/httpd/conf.modules.d/00-dav.conf | grep mod_dav

#以下の3行がコメントアウトされずに記載されていることを確認
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_lock_module modules/mod_dav_lock.so

#PUTメソッド利用のため、davモジュールがインストールされていることも確認
grep -r dav /etc/httpd/modules

#恐らく、以下が表示されるはず
#Binary file /etc/httpd/modules/libphp5.so matches
#Binary file /etc/httpd/modules/mod_dav.so matches
#Binary file /etc/httpd/modules/mod_dav_fs.so matches
#Binary file /etc/httpd/modules/mod_dav_lock.so matches
#Binary file /etc/httpd/modules/mod_status.so matches
#Binary file /etc/httpd/modules/mod_headers.so matches

#httpd.confファイルの末尾に追加
sed -i /etc/httpd/conf/httpd.conf -e '$ a DavLockDB "/var/tmp/DavLock"\n\n<Directory "/var/www/html/dav">\n\tRequire all granted\n\tDav On\n</Directory>'

#Davディレクトリ追加
mkdir -p /var/www/html/dav
chmod 777 /var/www/html/dav

#apacheを再起動
systemctl restart httpd