3

自宅のローカルサーバーにlaravelをセットアップしようとしていますが、コントローラールートが機能していないようです。

Route::controller('home','home');

このコードは、私が職場に持っているサーバーで動作し、apache2 が .htaccess ファイルを参照するように構成されていないことが原因であると主張する問題に関するフォーラムをいくつか読みました。

私はしばらくそれをいじっていますが、まだ何も機能していないようです。/etc/apache2/sites-available に入り、次のような site1 という独自の構成ファイルを作成しました。

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/laravel/
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /var/www/laravel/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

次に、 a2dissite default && a2ensite site1 および /etc/init.d/apache2 restart を実行しましたが、何も起こりませんでした。

ご協力いただきありがとうございます。何か明確にする必要がある場合はお知らせください。

Apache が .htaccess ファイルを読み取っていないことが判明しました。エラーを引き起こすはずのナンセンスを意図的に書きましたが、エラーは発生しませんでした。

4

4 に答える 4

5

問題は mod_rewrite.c が有効になっていないことが判明したため、a2enmod rewrite を実行すると、すべてが機能し始めました。laravel の .htaccess ファイルが依存していることに気付きました。愚かな私。すべての助けをありがとう。

于 2013-06-27T01:12:37.063 に答える
3

.htaccess で、次の行を置き換えてみてください。

RewriteRule ^ index.php [L]

RewriteRule ^ /index.php [L]

編集:

その場合、仮想ホストが httpd.conf に設定されていないと思います。これを試して、機能するかどうかを確認できます。

この行を httpd.conf ファイルに入れます

窓用

NameVirtualHost *:80

<VirtualHost *:80>
    ServerName yourlaravel.com
    DocumentRoot "C:/wamp/www/laravel/public"
    <Directory "C:/wamp/www/laravel/public">
    </Directory>
</VirtualHost>

<VirtualHost *:80>
     ServerName localhost
     DocumentRoot "C:/wamp/www"
     <Directory "C:/wamp/www">
     </Directory>
</VirtualHost>

Linux の場合

NameVirtualHost *:80
<VirtualHost *:80>
    ServerName yourlaravel.com
    DocumentRoot "/var/www/laravel/public"
    <Directory "/var/www/laravel/public">
 </Directory>

<VirtualHost *:80>
   ServerName localhost
   DocumentRoot "/var/www"
   <Directory "/var/www">
   </Directory>
</VirtualHost>

ローカルマシンで実行するには

ウィンドウを開くには、C:\Windows\System32\drivers\etc\hosts に次の行を入力します。

 yourserverip   yourlaravel.com

Linux の場合、\etc\hosts を開いてこの行を入力します。

 yourserverip   yourlaravel.com

詳細については、次のリンクを参照してください。

http://net.tutsplus.com/tutorials/php/building-web-applications-from-scratch-with-laravel/

これが助けになることを願っています。

于 2013-06-24T08:24:21.727 に答える
0

この種のエラーは、public/.htaccessが正しくない場合によく表示されます。これを試してください:

<IfModule mod_rewrite.c>
    Options -MultiViews
    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>
于 2013-06-23T21:22:49.063 に答える
-1

AWS EC2 にアップロードする場合は、デフォルト/var/www/htmlをルート ディレクトリとして使用します。

[ec2-user@www html]$ pwd

/var/www/html

[ec2-user@www html]$ ll

-rw-r--r--  1 ec2-user ec2-user   146 Nov 10 06:29 CONTRIBUTING.md 
drwxr-xr-x 12 ec2-user ec2-user  4096 Mar  8 16:21 app 
-rwxr-xr-x  1 ec2-user ec2-user  2452 Nov 10 06:29 artisan  
drwxr-xr-x  2 ec2-user ec2-user  4096 Mar  5 00:18 bootstrap
-rw-r--r--  1 ec2-user ec2-user   717 Nov 10 06:29 composer.json  
-rw-r--r--  1 ec2-user ec2-user 58819 Jan 11 22:00 composer.lock 
drwxr-xr-x  3 ec2-user ec2-user  4096 Jan 11 22:24 nbproject  
-rw-r--r--  1 ec2-user ec2-user   567 Nov 10 06:29 phpunit.xml  
drwxr-xr-x  3 ec2-user ec2-user  4096 Nov 10 06:29 public    
-rw-r--r--  1 ec2-user ec2-user  2051 Nov 10 06:29 readme.md
-rw-r--r--  1 ec2-user ec2-user   519 Nov 10 06:29 server.php
drwxr-xr-x 20 ec2-user ec2-user  4096 Jan 11 22:00 vendor

すべての laravel ファイルの所有者として ec2-user を保持します。実行する:

$ sudo chmod -R 777 app/storage  

$ sudo php artisan serve --host 0.0.0.0 --port 80  

https.conf:

<VirtualHost *:80> 
    ServerName localhost  
    DocumentRoot "/var/www/html/" 
    <Directory "/var/www/html/">  
        Options Indexes FollowSymLinks Includes execCGI  
        AllowOverride All
        Require all granted  
    </Directory> 
</VirtualHost>  

/var/www/html/.htaccess:

<IfModule mod_rewrite.c>  
    RewriteEngine On  
    RewriteRule ^(.*)$ public/$1 [L]  
</IfModule> 
于 2015-03-08T10:08:12.043 に答える