私はIIS Linuxを初めて開発しようとしている少年なので、優しくしてください。
OK、それで...私はワークステーションをlaravelで開発するように設定しようとしています。
Ubuntu 18.04を使用していて、Apacheをインストールしました。私はlaravel composerからインストールし、最初のプロジェクトをcomposer create-project --prefer-dist laravel/laravel mySite "5.8.*"
これにより、laravel/Siteという名前のプロジェクトフォルダが/ etc/Apache2/sites-enabledに作成されました。
次のような新しいファイル/etc/Apache2/sites-available/mySite.confを追加しました。
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName mySite
ServerAlias www.mySite
DocumentRoot /etc/Apache2/sites-enabled/mySite/public/index.php
ErrorLog ${Apache_LOG_DIR}/error.log
CustomLog ${Apache_LOG_DIR}/access.log combined</VirtualHost>
その後、/ etc/Apache2/Apache2.confに次の行を追加しました。
Include /etc/Apache2/sites-available/mySite.conf
そしてもちろん、仮想サイトを同じファイルのホワイトリストに登録しました:
<Directory /etc/Apache2/sites-available/mySite>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
私はa2ensiteを実行してApacheを再起動しました。
しかし、 http:// localhost/mySite または http:/にアクセスしようとすると、403エラー(禁止。このリソースにアクセスする権限がありません)が常に表示されます。 /localhost/mySite/public/index.php また、localhostの代わりに127.0.0.1を使用すると、同じエラーがスローされます。
この問題に関する洞察は大歓迎です。
こんにちは私はローカル開発用の仮想ホストの設定を経験したので、これがあなたに役立つことを願っています。
Apache.confから行を削除します:_Include /etc/Apache2/sites-available/mySite.conf
_
そして、_Sudo a2ensite mySite.conf
_コマンドを実行して仮想ホストを有効にします。 (mySite.confファイルは... Apache/sites-available /でも同じである必要があります)
VHost confファイルで、DocumentRootを次のように編集します
_<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName mySite.loc
ServerAlias www.mySite.loc
DocumentRoot /your/project/path
ErrorLog ${Apache_LOG_DIR}/error.log
CustomLog ${Apache_LOG_DIR}/access.log combined
</VirtualHost>
_
ここで、ServerName
はプロジェクトのlocalhostドメインであり、_DocumentRoot /your/project/path
_はプロジェクトがホストされているルートフォルダーです(index.htmlまたはindex.phpがあるはずです)。 _/home/yourusername/projects/mysite/public
_のように、index.phpファイルではなく、フォルダーへのパスのみを指定する必要があります。
また、プロジェクトをホームディレクトリに移動して、プロジェクトにアクセスするためにroot権限を必要としないようにします。プロジェクトを/ home/yourusername/projects/mysite/publicに移動できます
Sudoで_/etc/hosts
_ファイルをvim(またはnano、sublime、または任意のエディター)で編集します。次の行を追加します。
_127.0.0.1 mySite.loc
_
そしておそらくあなたはそれをこのように見るでしょう:
_127.0.0.1 localhost
127.0.0.1 mySite.loc
_
次に、コマンドを実行してconfサイトを有効にします(まだ実行していない場合)。 _Sudo service Apache2 reload
_でApacheをリロードし、_Sudo service Apache2 restart
_でApacheを再起動します。
これで、Vhostsは正しく構成されましたが、Apacheのフォルダーに正しいユーザーおよびグループのアクセス許可を与える必要があります。
通常は_/etc/Apache2/Apache2.conf
_にあるSudoを使用してApache confファイルを編集します。
この行を見つけます:
_User ${Apache_RUN_USER}
Group ${Apache_RUN_GROUP}
_
コメントアウトして、プロジェクトの所有者のユーザー名とグループ名に変更します。これを確認するには、ターミナルを開き、cd
を使用してプロジェクトにディレクトリを変更し、コマンド_ls -l
_、ファイルとフォルダーの左側にフォルダーとファイルのユーザー名とグループ名が表示されます。
_~
➜ cd Sites/mySite/public
Sites/mySite/public via ???? v7.2.24
➜ ls -l
total 0
-rw-r--r-- 1 mauriciogtz mauriciogtz 0 nov 5 11:15 index.php
_
私のファイル許可所有者のユーザー名はmauriciogtz(左側)で、私のグループはmauriciogtz(右側)です。
Apache confファイルに次のように追加します。
_#User ${Apache_RUN_USER}
#Group ${Apache_RUN_GROUP}
User mauriciogtz
Group mauriciogtz
_
うまくいかなかった場合は、以前にグループ名の代わりに_Group staff
_を使用できます。次に、このコードブロックを探します。
_<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
_
それをすべてコピーしてすぐ下に貼り付け、次のように変更します。
_<Directory /home/mauriciogtz/Sites/mySite/public>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
_
ディレクトリパスをプロジェクトパスにする必要がある場合、プロジェクトフォルダ内でpwd
を使用してパスを取得できます。
Apacheをもう一度_Sudo service Apache2 restart
_で再起動します。これで終了です。これがうまくいくことを願っています。