さて、最新バージョンのSymfony 4をインストールしました。インストール後にブラウザを実行すると、ニースのウェルカムグリーティングが表示されます。いいね!
次に、make:controller
を使用して新しいコントローラーを作成しました。このコントローラーにClientという名前を付け、他のデフォルトコントローラーと同じ注釈を使用しています。次のようにルーティングを構成しました。
/**
* @Route("/client", name="client")
*/
public function index()
{
// replace this line with your own code!
return $this->render('@Maker/demoPage.html.twig', [ 'path' => str_replace($this->getParameter('kernel.project_dir').'/', '', __FILE__) ]);
}
ブラウザを更新しましたが、エラーはありませんでした。
次に、ブラウザにパスを手動で入力して、実際に機能するかどうかを確認しました。
localhost:8000/client
問題。 URLは標準のApache 404を返しました
Not Found
The requested URL /client was not found on this server.
Apache/2.4.18 (Ubuntu) Server at new.staff-fdr.dev Port 80
ただし、デバッグルートでは次のように表示されます。
-------------------------- -------- -------- ------ ------------------
Name Method Scheme Host Path
-------------------------- -------- -------- ------ -----------------
client ANY ANY ANY /client
index ANY ANY ANY /
_twig_error_test ANY ANY ANY /_error/{code}.
.htaccess
ファイルがありません。
composer config extra.symfony.allow-contrib true
composer req symfony/Apache-pack
私もこの問題を抱えていましたが、もしこれがあなたのために機能しない場合、ここにいくつかの他のアイデアがあります。 1つは、ここに記載されているとおりにWebサーバーを構成することです。 mod_phpで最適化されたApacheは私のために働いた:
https://symfony.com/doc/master/setup/web_server_configuration.html
次に、Webサーバーでmodの書き換えを有効にしていませんでした。これは最終的に私を立ち上げた修正でした。実行:
Sudo a2enmodの書き換え
それから
SudoサービスのApache2の再起動
それでうまくいくはずです。
私の場合、symfony flexに移行するときに、vhost設定をWebからパブリックフォルダーに変更するのを忘れていました。
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "C:/xampp/htdocs/myproject/web/"
ServerName dev.myproject.com
ServerAlias dev.myproject.com
<Directory "C:/xampp/htdocs/myproject/web/">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
に
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "C:/xampp/htdocs/myproject/public/"
ServerName dev.myproject.com
ServerAlias dev.myproject.com
<Directory "C:/xampp/htdocs/myproject/public/">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
Order allow,deny
Allow from all
</Directory>
</VirtualHost>