LoginSignup
6
7

More than 5 years have passed since last update.

Phalconをサブディレクトリに配置したい

Posted at

http://localhost/invo/ みたいにしたいってことです。

これApacheなら楽勝と思うんですけど、今回はnginx。
実はこれ丸コピで出来るんじゃないかと思ったんですけど、どうにもルーティングがうまくいかない。

しかたないので古い記憶引っ張り出してきて、CakePHPの時はどう書いてたかなー、なんて思いながらごちゃごちゃやりました。

前提条件

今回は実験用にinvoを配置したいと思います。
nginxのインストールは他の方が書かれた記事を参照していただき、phalconとphpのインストールはこれ見てください。

次、ディレクトリ構成です。

  1. invo は /var/www/phalcon/invo に配置する
  2. php-fpm は /var/run/php-fpm/phalcon.sock で待ち構えてるとする

・・・ぐらいですかね?

設定ファイル

本題の設定ファイルです。必要最小限だと思います。

invo.conf
server {
 listen 80;
 server_name invo;

 charset utf-8;

 set $root_path '/var/www/phalcon/invo/public';
 root $root_path;
 index index.php;

 location /invo {
  alias $root_path;
  index index.php;

  if (!-e $request_filename) {
    rewrite ^/invo/(.+)$ /invo/index.php?_url=/$1 last;
  }
 }

 location ~ ^/invo/(.+\.php) {
  alias $root_path/$1;
  fastcgi_pass  unix:/var/run/php-fpm-phalcon.sock;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME $request_filename;
  include /etc/nginx/fastcgi_params;
 }
}

http://invo/invo にアクセスし、CSSが適用されたトップページが表示されることを確認してください。
続いて、メニューやらポチポチして、ちゃんとルーティングが適用されていることも確認してください。

ちなみにですが、http://invo/invo/index.php?_url=/about/index とかも動作します。
これどうにかならないですかね?

実はnginxの設定あんまり知らないので、ここ変とかいらないとか、もっといい方法があれば教えてくださいorz

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7