【问题标题】:Laravel Develoyment on AWS EC2AWS EC2 上的 Laravel 开发
【发布时间】:2016-01-31 18:08:27
【问题描述】:

我正在尝试在 AWS EC2 云服务器上部署 laravel 5.1 项目,但 laravel 网站路由 URL 存在问题。

我运行了以下命令来配置 EC2 ubuntu 14.04 LTS 服务器。

sudo apt-get install apache2
sudo apt-get install mysql-server php5-mysql
sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt
sudo apt-get install php5 php-pear
sudo apt-get install curl php5-curl php5-cli git
sudo a2enmod rewrite
sudo php5enmod mcrypt
sudo service apache2 restart

当我尝试访问任何路由 URL 但我的主页正确加载时出现以下错误。

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /register was not found on this server.</p>
<hr>
<address>Apache/2.4.7 (Ubuntu) Server at xxxx.ap-southeast-2.compute.amazonaws.com Port 80
</address>
</body></html>

我已将 apache 路由 URL 更改为我的 laravel 项目的公用文件夹,但没有任何成功。我也尝试启用以下虚拟主机文件,但仍然遇到同样的错误。

<VirtualHost *:80>  
    ServerAdmin webmaster@mynewhost.com 
    DocumentRoot /var/www/html/mynewhost/public
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost>

我运行了以下命令来授予存储文件夹的权限

 chmod -R 777 storage

我需要为我的 laravel 项目文件夹授予任何权限吗?

感谢任何帮助。

【问题讨论】:

  • 你开启重写模块了吗?尝试 sudo a2enmod rewrite 并重新启动你的 apache
  • @JLPuro 是的,我做到了。我会更新我的问题。
  • 它加载 /var/www/html/mynewhost/resources/views/auth/login.blade.php 模板作为主页。所以我认为 Route::get('/', 'Auth\AuthController@getLogin') 路由是有效的。

标签: php laravel deployment amazon-ec2 hosting


【解决方案1】:

这是我在 Ubuntu 14.04 上对 Laravel 5.1 的配置

您可能需要启用重写引擎

sudo a2enmod rewrite

如果这不起作用,您可以将虚拟主机配置更改为类似的内容

<VirtualHost *:80>

        ServerName laravel.example.com
        DocumentRoot /var/www/html/mynewhost/public

        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/html/mynewhost/>
                AllowOverride All
        </Directory>
        ErrorLog ${APACHE_LOG_DIR}/error.log
        LogLevel warn
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

另外将 ServerName 添加到 /etc/hosts

<your-server-ip-address> laravel.example.com

【讨论】:

  • 这里你已经将 ubuntu 服务器的 web 根目录更改为 laravel 网站的公共文件夹。你如何使用这种配置在同一台服务器上托管 2 个 laravel 网站?
  • 您可以尝试将DocumentRoot 设置为/var/www/html/ 我认为它仍然可以工作。
猜你喜欢
  • 2020-05-29
  • 1970-01-01
  • 2018-03-27
  • 2021-09-11
  • 2015-04-22
  • 1970-01-01
  • 1970-01-01
  • 2015-04-07
  • 2020-04-19
相关资源
最近更新 更多