我是第一次尝试深入研究 linux 开发的 IIS 男孩,所以请温柔一点。
好的,所以...我正在尝试配置我的工作站以在 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。
但是,在尝试访问http://localhost/mySite或http://localhost/mySite/public/index.php时,我一直收到 403 错误(禁止访问。您无权访问此资源。) ,使用 127.0.0.1 而不是 localhost 会引发相同的错误。
欢迎对此问题的任何见解。
您好,我有为本地开发设置虚拟主机的经验,希望对您有所帮助。
从 apache.conf 中删除该行:
Include /etc/apache2/sites-available/mySite.conf
只需运行
sudo a2ensite mySite.conf
命令即可启用虚拟主机。(mySite.conf 文件应该在 ...apache/sites-available/ 中相同)在您的 VHost conf 文件中,像这样编辑您的 DocumentRoot
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 或任何你喜欢的编辑器)编辑文件。并添加这一行:你可能会看到它是这样的:
现在运行命令以启用 conf 站点(如果您之前没有这样做过)。重新加载 apache:
sudo service apache2 reload
并重新启动 apachesudo service apache2 restart
。好的,现在您将正确配置您的虚拟主机,但您必须为 apache 中的文件夹提供正确的用户和组权限:
使用 sudo 编辑 apache conf 文件,通常位于:
/etc/apache2/apache2.conf
.找到这行:
并将它们注释掉并将它们更改为您的项目拥有所有者的用户名和组名,您可以通过打开终端并使用
cd
和使用命令将目录更改为您的项目来找到它ls -l
,您现在将看到文件夹和文件和文件夹左侧的用户名和组名:我的文件权限所有者用户名是 mauriciogtz(左侧),我的组是 mauriciogtz(右侧)。
像这样在你的 apache conf 文件中添加它们:
Group staff
如果这对您不起作用,您可以使用之前的组名来代替。现在寻找这段代码:将其全部复制并粘贴在下面并将其更改为如下所示:
目录路径应该是您的项目路径,您可以
pwd
在项目文件夹中使用来获取路径。再次重新启动apache
sudo service apache2 restart
,应该就是这样。我希望这对你有用。