403 尝试访问本地应用程序时出错

403 尝试访问本地应用程序时出错

我是一名 IIS 男孩,首次尝试深入研究 Linux 开发,所以请温柔一点。

好的,那么...我正在尝试配置我的工作站以便在 laravel 上进行开发。

我在 Ubuntu 18.04 上,并且安装了 apache。我已经从 Composer 安装了 laravel,并使用以下内容创建了第一个项目: composer create-project --prefer-dist laravel/laravel mySite "5.8.*"

这在 /etc/apache2/sites-enabled 上创建了一个名为 mySite 的 laravel 项目文件夹

我添加了一个新文件 /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。

但是,当我尝试访问时,我不断收到 403 错误(禁止访问。您无权访问此资源。)http://localhost/mySite或者http://localhost/mySite/public/index.php此外,使用 127.0.0.1 而不是 localhost 也会引发同样的错误。

欢迎对这一问题提出任何见解。

答案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)。您应该只输入文件夹的路径,而不是 index.php 文件的路径,如下所示:/home/yourusername/projects/mysite/public

另外,将项目移至主目录,这样就不需要 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 站点(如果你之前没有这样做过)。使用以下命令重新加载 apache:sudo service apache2 reload并使用 重新启动 apache sudo service apache2 restart

好的,现在您的 Vhosts 已经正确配置了,但是您必须为 apache 中的文件夹授予正确的用户和组权限:

使用 sudo 编辑 apache conf 文件,通常在:/etc/apache2/apache2.conf

找到这一行:

User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}

并将它们注释掉,并将其更改为您的用户名和项目所有者的组名,您可以通过打开终端并使用命令将目录更改为您的项目来找到它cdls -l您现在将在您的文件和文件夹左侧看到文件夹和文件的用户名和组名:

~ 
➜ cd Sites/mySite/public 

Sites/mySite/public via 

相关内容