CentOS7.0にPhalconのインストール

PHP最速のフレームワークと評判の高い、Phalconを試してみたくて、GCP(Google Cloud Platform)で、作成したCentOS7.0に、Phalconをインストールしてみたいと思います。

サーバーのシステム構成

  • サーバー CentOS7.0
  • Webサーバー Apache2.4.6
  • データベース MySQL5.6.23
  • PHP5.6.6

前準備

まず、最初にphalconのインストールに必要なパッケージをインストールします。

sudo yum -y install php-devel php-mysqlnd gcc libtool git

すると、いきなり、下記のようなエラーが表示されました。

2015-03-30 16-52-53

どうもphp-develがインストールできないみたいです。ここで、結構はまってしまい、先行きが不安です。

いろいろ試した結果下記のように修正することで、インストールすることができました。

sudo yum --enablerepo=remi-php56 install -y php-devel
sudo yum -y install php-mysqlnd gcc libtool git

これで、無事php-develがインストールできました。phalconのインストール前にこんなに苦労しては、先が思いやられます。

コンパイル

それでは、phalconをgithubからクローンしてきて、インストールします。

git clone --depth=1 git://github.com/phalcon/cphalcon.git
cd cphalcon/build
sudo ./install

phalconは、無事インストールできたみたいです。

2015-03-30 16-55-04

iniの追加

sudo vi /etc/php.d/phalcon.ini

で、新しく作成したphalcon.iniに下記の1行を追加します。

extension=phalcon.so

これで、PHPにPhalconが組み込まれました。

※ここでも、躓いてしまいました。/etc/php.iniの最後の行に、上記のextensionを追加すれば、大丈夫だと思っていたのですが、この方法では、phalconを認識できませんでした。

2015-03-31 2-35-20

devtoolsのインストール

phalconをインストールするからには、devtools(開発用ツール)もインストールしておきたいと思います。

cd /home/Hide
git clone git://github.com/phalcon/phalcon-devtools.git
cd phalcon-devtools
sudo ./phalcon.sh

2015-03-30 17-17-38

そして、シンボリックリンクを作成しておきます。

sudo ln -s /usr/local/share/phalcon-devtools/phalcon.php /usr/local/bin/phalcon

devtoolsのコマンド一覧

phalcon commandsと入力すると、下記のようにコマンドの一覧が表示されます。

2015-03-31 0-56-06

 プロジェクトの生成

それでは、プロジェクトを生成してみましょう。rootユーザーに変更してから、実行します。※一般ユーザでは、/var/www/htmlディレクトリに対して、プロジェクトの作成ができません。

su -
cd /var/www/html
phalcon create-project my-project

ちなみに、

phalcon create-project my-project --enable-webtools

で、便利なWeb Toolsも一緒に生成されます。

2015-03-30 18-37-17

/var/www/html/my-projectディレクトリの中に、appディレクトリ、publicディレクトリ、そして、index.phpが生成されています。尚、隠しディレクトリの.phalconと隠しファイル.htaccessも作成されています。

mod_rewreiteの設定

ブラウザで確認してみましょう。下記のように、mod-rewriteが使用できないようです。

2015-03-30 18-42-11

vi /etc/httpd/conf/httpd.conf

httpd.confの151行目のNoneをAllに変更します。

AllowOverride All

変更したら、

systemctl restart httpd

でApacheを再起動します。

Volt directory can’t be written

すると、またまたエラーです。「Volt directory can’t be written」と表示されました。

2015-03-31 2-24-23

どうも書き込み制限がかかっているようですね。いくつかのサイトを調べてみたら、appディレクトリ内のcacheのパーミッションを777にセットすれば、直るとのことで、下記のように記述してみました。

chmod -R 777 /var/www/html/my-project/app/cache

が、結果は変わりませんでした。

またまた、ここで躓いてしまいました。

今日は、いろいろなところで躓いて、大変疲れました。途中ですが、ここまでにします。だれか理由のわかる方がいらっしゃいましたら、教えてください。(>_<)

ちなみに、下記も試してみましたが全部だめでした。

1. cacheの所有者をrootからapacheに変更

chown -R apache. /var/www/html/my-project/app/cache

2. my-project以下の全ての所有者をapacheに変更

chown -R apache. /var/www/html/my-project

3. viewsのパーミッションを777に変更

chmod -R 777 /var/www/html/my-project/app/views

尚、変更後は、すべて「systemctl restart httpd」を実行しています。

理由が判明しました

あれからいろいろ試行錯誤を重ね、やっと理由が判明しました。

原因は、SELINUXの設定でした。

下記のようにSELINUXを無効にしたら、「Congratulations!」が表示されました。

vi /etc/selinux/config

で、configファイルを開き、7行目のenforcingをdisabledに変更します。

SELINUX=disabled

2015-03-31 18-47-28

そして、サーバーを再起動

reboot

したら、無事に下記のようなページが表示されました。

2015-03-31 18-52-34

これで、やっとPhalconをいじることができるようになりました。めでたし、めでたし。(*^▽^*)

このエントリーを含むはてなブックマーク Buzzurlにブックマーク livedoorクリップ Yahoo!ブックマークに登録

トラックバック&コメント

この投稿のトラックバックURL:

コメントをどうぞ

このページの先頭へ