最近、WindowsからUbuntu 16.04に移行しました。Web開発環境をセットアップしようとしています。 Apache、mysql、およびphpを正常にインストールし、htmlとphp(Sudo nanoを介してテストスクリプトを作成)の両方が/var/www
から完全にレンダリングされます。
その後、ファイルを保存するとアクセス拒否エラーが発生することを理解するために、ディレクトリ/var/www
の崇高なテキストから新しいファイルを作成しようとしました。そこで、これが許可などに関する新しい記事につながり、そのディレクトリの許可を修正することはおそらく良い考えではないことに気付きました。
Apacheドキュメントルートを他の場所に移動する方法に関する記事を参照しました。次に、/home/user
の下に新しいprojects/webディレクトリを作成し、/etc/Apache2/sites-available/000-default.conf
のDocumentRootを変更しました(Apache 2.4.18を使用しています)。 /etc/Apache2/Apache2.conf
にも関連する変更を加えて、<Directory>
パスも変更しました。 Apacheを再起動し、DocuemntRoot
が変更されましたが、PHPをレンダリングしていません。以前にurl http:// localhost/phpmyadmin で機能していたphpmyadminでさえ機能しなくなりました。
/etc/Apache2/sites-available/000-default.confで変更されました:DocumentRoot /var/www/html
にDocumentRoot /home/{user}/projects/web
/etc/Apache2/Apache2.confで変更されました:<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
に<Directory /home/{user}/projects/web/> Options Indexes FollowSymLinks AllowOverride None Require all granted</Directory>
DocumentRootを変更しても、phpとphpmyadminを機能させるにはどうすればよいですか?
最初に壊れたApaches2を修正
Apache2が破損しているようです。デフォルトのホスト設定を使用し、必要な変更カスタムルートディレクトリの仮想ホストを作成する必要があります。編集した構成ファイルを削除または名前変更して、元のファイルを復元します。
デフォルトの000-default.conf
ファイルをテンプレートとして使用します。仮想ホストの名前にコピーして、カスタムファイルに変更を加えます。
これらの手順を使用してファイルの名前を変更できます:
$ cd /etc/Apache2/sites-available
$ Sudo mv 000-default.conf mysite.conf
$ cd /etc/Apache2
$ Sudo mv Apache2.conf Apache2.conf.test
このコマンドラインでデフォルトのファイルを復元します:
$ Sudo apt -o Dpkg::Options::="--force-confmiss" install --reinstall Apache2
ここで仮想ホスト「mysite.com」を作成。 /home/web/mysite
は任意のディレクトリに置き換えることができます。あなたの場合、/home/{user}/projects/web
を使用できます。
$ cd /etc/Apache2/sites-available
$ Sudo cp 000-default.conf mysite.conf
$ Sudo mkdir -p /home/web/mysite/www
$ Sudo mkdir -p /home/web/mysite/log
mysite.comホストが存在しない場合は、次を使用してローカルに作成します。
$ gksudo gedit /etc/hosts
hosts
ファイルに追加します。
127.0.0.1 mysite.com
mysite.confファイルを編集して、Document Rootの選択肢を指すようにします。
$ pksudo gedit /etc/Apache2/sites-available/mysite.conf
このファイルに次の変更を加えます。これは、000-default.conf
ファイルと新しく作成されたmysite.conf
ファイルの違いです。違いはbold typeで強調表示されます。
&ltVirtualHost *:80> #ServerNameディレクティブは、サーバーが自身を識別するために使用する要求スキーム、ホスト名、およびポートを設定します #。これは、 #リダイレクトURLを作成するときに使用されます。仮想ホストのコンテキストでは、ServerName #は、リクエストのHost:ヘッダーに表示されるホスト名を指定します。to #この仮想ホストに一致します。デフォルトの仮想ホスト(このファイル)の場合、this #値は関係ありません。最終的なホストとして使用されるため、決定的ではありません。 #ただし、さらに仮想ホストを明示的に設定する必要があります。 ServerName mysite.com ServerAdmin webmaster @ localhost DocumentRoot/home/web/mysite/www&ltDirectory /> オプション+ FollowSymLinks + ExecCGI + Includes 許可されたすべてを要求する </ Directory> #利用可能なログレベル:trace8、...、trace1、debug、info、notice、warn、 #error、crit、alert、emerg。 #特定の #モジュールのログレベルを設定することもできます。例えば、 #LogLevel info ssl:warn ErrorLog /home/web/mysite/log/error.logCustomLog /home/web/mysite//access.logの組み合わせ #conf-available /のほとんどの構成ファイル( #グローバルレベルで有効または無効にする)には、 #行を含めることができます。特定の1つの仮想ホストのみ。たとえば、 #次の行は、このホストのみのCGI構成を有効にします #「a2disconf」でグローバルに無効にされた後。 #conf-available/serve-cgiを含める-bin.conf </ VirtualHost> #vim:syntax = Apache ts = 4 sw = 4 sts = 4 sr noet
これで新しいサイトを有効にします:
$ Sudo a2ensite mysite.conf
Apache構成ファイルに変更を加える場合、次のコマンドでサービスを再起動します。
$ Sudo systemctl restart Apache2
VirtualHostのディレクトリとファイルへのアクセス許可を書き込む:
コマンドchown
およびchgrp
を使用して、/home/web/mysite/www
のファイルとフォルダーの所有者を変更できます。ユーザーIDが所有している場合、ファイルとフォルダーへの読み取りおよび書き込みアクセス権があります。
特定のgroupを作成し、特定のグループにユーザーを追加して、そのグループのユーザーがファイルとフォルダーへの読み取り/書き込みアクセス権を持つようにすることもできます。
後者の考慮事項を使用すると、他のユーザーに/home
スペース内のファイルやフォルダーへのアクセスを許可するよりも優れたセキュリティの代替手段となります。