我在我的cpanel和localhost中安装了laravel,但是我发现了两种执行/运行laravel的方法。
/公共/
php artisan serve
如果我在我的笔记本/ localhost中运行,我可以使用php artisan服务,它就像路由和数据库一样,但在我的cpanel我不能使用第二种方式,所以我必须使用第一种方式,但它做得不好像路由等。
那么哪一个更好,如何让第一种方式运行良好?
答案 0 :(得分:2)
通常,您会使用
php artisan serve
仅适用于您的开发环境。
在生产服务器上,您将添加< VirtualHost>或者Apache配置中的Alias drective。
<VirtualHost *:80>
ServerAdmin admin@localhost
DocumentRoot /path/to/your/laravel/public
ServerName your.domain.com
<Directory /path/to/your/laravel/public>
AllowOverride None
Order allow,deny
Allow from All
Options FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</Directory>
</VirtualHost>
使用此类配置,您可以访问Laravel网站: http://your.domain.com/
使用Alias时,您的Apache配置将是这样的:
Alias /any/path/you/want /path/to/your/laravel/public
<Directory "/path/to/your/laravel/public">
Order allow,deny
Allow from All
Options +FollowSymLinks
RewriteEngine On
RewriteBase /any/path/you/want
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</Directory>
使用此配置,您将访问您的laravel:http://your.domain.com/any/path/you/want
在某些Web托管服务提供商上,您无权访问Apache配置, 在这种情况下,您必须将配置放在公共目录中的.htaccess文件中。 Laravel在公共目录中有一个默认的.htaccess文件,其中包含:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
您必须检查您的托管是否允许.htaccess