我在PHP中非常新,而且在Laravel中,我非常绝望地试图部署一个Laravel 5.4应用程序,该应用程序在我的Linux服务器上的本地环境中运行良好。
因此,我认为它与虚拟主机配置或类似的东西有关(也可能与.htaccess文件有关)。
在我的本地环境中(我在Windows上使用XAMPP ),我将这个虚拟主机设置为文件:
<VirtualHost *:80>
    DocumentRoot "C:/xampp/htdocs/HotelRegistration/public"
    ServerName laravel.dev
</VirtualHost>因此,打开laravel.dev URL,我获得了标准的Laravel主页(我还没有用登陆页面替换它)。
如果我打开这个网址:http://laravel.dev/registration
我获得了我开发的用户注册页面,这是因为我已经将这个路由放到了我的项目中的web.php文件中:
Route::resource('/registration', 'RegistrationController');然后,在我的RegistrationController.php中,有一个显示resources/views/registration/index.blade.php视图的方法
public function index(){
    return view('/registration/index');
}一切正常。
现在,我已经将这个Laravel网站上传到我的远程Linux服务器中,放到这个文件夹中:/var/www/html/HotelRegistration。
但现在我的问题是,在这个远程环境中,我没有虚拟主机(如果我做了错误的断言,请纠正我:据我所知,在本地环境中使用虚拟主机来模拟Laravel需要指向公共文件夹的域,这个推理正确吗?)
无论如何,这是我在远程服务器上部署的网站的公共文件夹的URL:
http://89.36.211.48/HotelRegistration/public/
正如您可以看到打开它-- Laravel登陆页面正确显示的那样,问题是我可以访问以前的注册页面,我找到的唯一方法是打开这个URL:
http://89.36.211.48/HotelRegistration/public/index.php/registration
但是这是相当可怕的,而且最重要的是,当提交注册表单时,会向这个URLhttp://89.36.211.48/registration生成一个POST请求,该请求的结尾是一个404,没有找到错误。
因此,我认为这取决于这样一个事实:在这个远程服务器中,我不能使用模拟域的虚拟主机(就像我在本地环境中所做的那样),但我不确定。
我能做些什么来解决这个问题?您认为使用指向远程服务器http://89.36.211.48/HotelRegistration/public/目录的有效域(比如:http://89.36.211.48/HotelRegistration/public/)可以解决这个问题吗?
发布于 2017-04-22 10:50:00
您需要在服务器中配置域,并重新配置apache。我认为您有apache2服务器,所以在这里您可以:
步骤1转到apache2文件夹cd /etc/apache2
步骤2您可以看到站点可用文件夹进入it cd站点可用的
laravel.dev.conf 步骤3创建一个新文件名为it
步骤4写下以下sudo nano laravel.dev.conf
步骤5写下以下选项:
<VirtualHost *:80>
     ServerAdmin webmaster@laravel.dev
     ServerName laravel.dev
     ServerAlias www.laravel.dev
     DocumentRoot /var/www/html/laravel.dev/public/
     ErrorLog /var/www/html/laravel.dev/logs/error.log
     CustomLog /var/www/html/laravel.dev/logs/access.log combined
     <Directory /var/www/html/laravel.dev/public/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride all
        Order allow,deny
        Allow from all
        Require all granted
     </Directory>
</VirtualHost>步骤6现在转到这个文件夹/创建一个新的cd /var/www/html/laravel.dev
步骤7复制/安装您的laravel应用程序。
步骤8现在您可以通过键入sudo a2ensite laravel.dev.conf来启用站点
步骤9现在重新启动apache2 sudo服务apache2 apache2
现在,您可以适当地访问您的域。希望这能有所帮助。
发布于 2017-04-22 08:26:26
因为您使用的是XAMPP
在您的VirtualHost指令中添加以下内容:
<Directory "LINUX PATH TO /HotelRegistration/public">
        AllowOverride All
</Directory>您的最终VirtualHost指令应该如下所示:
<VirtualHost *:80>
    DocumentRoot "LINUX PATH TO /HotelRegistration/public"
    ServerName 89.36.211.48
    <Directory "LINUX PATH TO /HotelRegistration/public">
        AllowOverride All
    </Directory>
</VirtualHost>在配置更改之后,重新启动Apache,您就可以继续了。
https://stackoverflow.com/questions/43556771
复制相似问题