サーバー管理にCentOS仮想マシンを使用する方法を学び始めました。簡単なホームページを作ってみようと思います。
Apacheの基本ファイルがあるため、/var/www
ファイルを作成/作成/変更することは困難です。しかし、ホームページをフォルダに入れ、/var/www
他のすべてのページをフォルダに入れたいと思います/home/$USER/Documents/Website
。
ホームページのコードはhref
他のページのコードにすぎません。自分のコンピュータでコードを実行すると機能しますが、ホームページに移動すると(ブラウザにIPを入力する)リンクは機能しませんが、ホームページはまだ存在します。
リンクをクリックすると表示されるエラーはです404 file not found
。
そのエラーコードからファイルの場所をコピーしてサーバーに入力した場合
cat {file_location}
ファイルの印刷に問題はありません。 Apacheグループをこのファイルの所有者に変更しました。 Apacheサーバーにここでファイルを検索させるにはどうすればよいですか?編集する必要がありますかhttp.conf
?
編集:サーバーが名前付きフォルダから読み書きできるようにするにはどうすればよいですか/Website
?
編集2:私が実行しているApacheのバージョンが何であるかわかりません。 CentOSインストーラを使用してApacheをインストールします。/var/www/html/index.html
私のIPアドレスを入力すると表示されるページです。 GUIパッケージを使用してサーバーをインストールした後、「セキュリティ」の問題があることを示すSELinuxポップアップが表示されるため、これはSELinuxの問題である可能性が高いです。私はそれが言ったスクリプトを実行し、フォルダを書くことができました/var/www/html
。別の場所にフォルダを追加したいのですが、どうすればいいかわかりません。フォルダへの書き込みを防ぐSELinuxに加えて、正しく覚えている場合は、/var/www/html
所有者を変更して実行しました。chmod 755
ベストアンサー1
Apacheにファイルのみを提供させるには、/Website
Apache設定を編集してに/etc/httpd/conf/httpd.conf
変更してサーバーを再ロードします。DocumentRoot
/Website
systemctl reload httpd.service
/Website
また、SELinuxファイルのコンテキストとその中のファイルを変更する必要があります。/var/www
(httpd_sys_content_t
または)httpd_sys_rw_content_t
と同じファイルコンテキストを使用できます。新しいファイルのラベル付け規則を追加し、semanage
次restorecon
を使用して適用します。
semanage fcontext -a -t httpd_sys_rw_content_t "/Website(/.*)?"
restorecon -R -v /Website
たとえば、ホームディレクトリからユーザーコンテンツを提供するようにApacheを設定したい場合。 http://server/~user
、あなたはそれを使用することができますmod_userディレクトリ。これを有効にし/etc/httpd/conf.d/userdir.conf
てサーバーを再ロードします。
httpd_read_user_content
アクセスを許可するには、SELinuxブールを有効にします。
semanage boolean -m --on httpd_read_user_content
ディレクトリ内のファイルはpublic_html
既に正しいhttpd_user_content_t
タイプで構成されている必要があります。そうでない場合は、実行してrestorecon -R -v /home/user/public_html
正しいファイルコンテキストを適用できます。