2014-08-30 88 views
0

我试图将我现有的本地网站移动到我的服务器。我安装了运行在nginx上的ajenti,不支持.htaccess文件。Laravel与nginx(ajenti)重写规则

我试图隐藏现有的规则,并将它们添加到自定义配置中,但没有运气。我也试过这里的规则:http://forumsarchive.laravel.io/viewtopic.php?id=1442但仍然没有运气。

# nginx configuration 
location/{ 
rewrite ^/(.*)/$ /$1 redirect; 
if (!-e $request_filename){ 
rewrite ^(.*)$ /index.php break; 
} 
} 

当我尝试访问网页(例如/ profile)时,我得到一个404(不是来自laravel的404)。

Greetz!

回答

2

1)首先安装PHP5 & CURL

apt-get install php5-fpm php5-cli php5-mcrypt curl libcurl3 libcurl3-dev php5-curl 

2)使能PHP扩展(如果未启用):

php5enmod mcrypt 
php5enmod curl 

3)安装作曲家

curl -sS https://getcomposer.org/installer | php 

4)移动作曲家到/usr/local/bin地点

mv composer.phar /usr/local/bin/composer 

5)创建一个新的laravel项目。

composer create-project laravel/laravel /srv/domain.com/ 4.2.11 

6)保持laravel项目的适当权限,或者只是使用Ajenti神奇的按钮
修复文件权限”:

sudo chown -R :www-data /srv/domain.com/ 
chmod -R 775 /srv/domain.com/app/storage 

有时你可能需要运行一个现有的项目。这一次克隆到你的目录。

7)在Ajenti管理面板 “网站” 设置网站根路径:使用Ajenti按钮 “重新启动网站”

/srv/domain.com/public 

重新启动web服务,并检查您的域名。
您可以看到laravel项目界面。

8)有时你会得到一个错误:

403 error Nginx. 

在这种情况下,去Ajenti管理面板“网站”:
选择domain.com,进入“高级”选项卡。你可以看到“自定义配置”
粘贴到第一场验证码:

location/{ 
    try_files $uri $uri/ /index.php?$query_string; 
} 

然后重启nginx的或只按Ajenti按钮“重新启动网站”。


UPDATE:

如果你想隐藏.php文件 exetensions,去你的网站的 “自定义配置”,并粘贴到第一场验证码:

location/{ 
    try_files $uri $uri/ /$uri.php?$query_string; 
}