WEB

Phalconチュートリアル実装2(PHP Framework)

Phalconのマニュアルにあるチュートリアルを実装し、INVOという名のWebサイトが表示されるところまで行います。
INVOというのは、Phalcon側で作成したサンプルWebサイトです。
Phalconのインストールは以下の内容で済んでいる前提です。

Phalconインストール(CentOS7.2 + PHP5.4)
または
Phalconインストール(CentOS7.2 + PHP7.0)

Phalconのサンプルソース取得

以下のマニュアルを参考にチュートリアルのソースを取得し、「Hello!」を表示します。
https://docs.phalconphp.com/ja/latest/reference/tutorial-invo.html

今回は、「/var/www/html/」配下にサンプルソースを配置します。
git cloneすることで、html下にinvoフォルダが作成されます。

$ cd /var/www/html/
$ git clone https://github.com/phalcon/invo.git

cloneしてソースを取得したら、gitは不要かと思いますので、削除してしまってよいです。

$ rm -rf /var/www/html/invo/.git/

Nginxの設定

以下のマニュアルを参考にnginx.confまたは、conf.d配下のconfファイルにnginxの設定を行います。
https://docs.phalconphp.com/ja/latest/reference/nginx.html

今回は、マニュアルの「$_SERVER[‘REQUEST_URI’] をURIsとする場合」の設定を使用します。
プロジェクトフォルダは「/var/www/html/invo/」です。
rootに設定するディレクトリは「/var/www/html/invo/public」ですので、ご注意を!

server {
    listen      80;
    server_name localhost;
    root        /var/www/html/invo/public;
    index       index.php index.html index.htm;

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

    location ~ \.php$ {
        try_files     $uri =404;

        fastcgi_pass  127.0.0.1:9000;
        fastcgi_index /index.php;

        include fastcgi_params;
        fastcgi_split_path_info       ^(.+\.php)(/.+)$;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    location ~ /\.ht {
        deny all;
    }
}

設定が完了したら、Nginxを再起動します。

CentOS7の場合

$ /bin/systemctl restart nginx

以上で完了です。
ブラウザでアクセスすると、INVOというWebサイトが表示されると思います。

もし、表示されない場合は以下の対応で直るかもしれません。

画面が表示されない場合の対応

Voltのエラー

もし、以下のようなエラーが画面に表示されたら、cache/volt/への書き込みが行えないためにエラーになっています。

Volt directory can't be written
#0 [internal function]: Phalcon\Mvc\View\Engine\Volt\Compiler->compileFile('/web/dev/ttonos...', '/web/dev/ttonos...', false)
#1 [internal function]: Phalcon\Mvc\View\Engine\Volt\Compiler->compile('/web/dev/ttonos...')
#2 [internal function]: Phalcon\Mvc\View\Engine\Volt->render('/web/dev/ttonos...', NULL, true)
#3 [internal function]: Phalcon\Mvc\View->_engineRender(Array, 'index/index', true, true, NULL)
#4 [internal function]: Phalcon\Mvc\View->render('index', 'index', Array)
#5 /web/dev/ttonosaki/iot/public/index.php(32): Phalcon\Mvc\Application->handle()
#6 {main}

cache/voltフォルダへの書き込み権限を与えてください。
手っ取り早くやるには、フォルダ権限を777にすると解決します。(セキュリティ的に微妙そうですが・・・)

$ chmod 777 /var/www/html/invo/cache/volt

デザイン(css)が適用されない

baseUriの設定が合っていない可能性があります。
以下のように修正すると直るかもしれません。

修正ファイル:/var/www/html/invo/app/config/config.ini

baseUri        = /invo/
↓
baseUri        = /

以上です。
お疲れさまでした。

【WordPress】SyntaxHighlighter Evolvedでコードをきれいに表示するプラグイン

wordpressでJava、PHPなどのプログラムコードやSQL、Shellなどのコードをきれいに表示するプラグインを紹介します。

SyntaxHighlighter Evolved

SyntaxHighlighter Evolvedは、wordpressのプラグインでプログラム、SQL、Shellなどのコードをきれいに表示することが出来ます。
表示速度も早く、インストールも簡単で、すぐに使用できるので、おすすめです。

表示イメージ
SyntaxHighlighter Evolved 表示イメージ

SyntaxHighlighter Evolvedインストール

SyntaxHighlighter Evolvedのインストール手順です。

  1. wordpressにログインし、左メニューのプラグインから新規追加を選択
  2. プラグイン検索テキストボックスに「SyntaxHighlighter Evolved」を入力し、Enter
  3. SyntaxHighlighter Evolvedの「今すぐインストール」ボタンをクリック
  4. 「有効にする」リンクをクリック

SyntaxHighlighter Evolvedの設定

wordpressの左メニューの「設定」 > 「SyntaxHighlighter」の項目があるので、そこからSyntaxHighlighter Evolvedの設定を行うことが出来ます。
ほぼデフォルトのままで十分ですが、テーマで見た目がだいぶ変わるので、好きなのを選んでください。
テーマを変更し、「変更を保存」ボタンをクリックして保存するとプレビューに反映されます。

SyntaxHighlighter Evolvedの使用方法

[ java][/java]や[ sql][/sql]のようにタグを記述して使用します。
※[の後のスペースは抜いて使用してください。

phpのコードを表示する場合

[ php]
echo phpinfo();
[ /php]

javascriptのコードを表示する場合

[ js]
echo phpinfo();
[ /js]

以下のタグが使用できます。

タグ 表示内容
actionscript3 ActionScript3
as3 ActionScript3
bash Bash/shell
shell Bash/shell
c-sharp C#
csharp C#
c C++
cpp C++
cf ColdFusion
coldfusion ColdFusion
css CSS
delphi Delphi
pas Delphi
pascal Delphi
diff Diff
erl Erlang
erlang Erlang
groovy Groovy
html HTML
java Java
javafx JavaFX
jfx JavaFX
javascript JavaScript
js JavaScript
jscript JavaScript
perl Perl
pl Perl
php PHP
plain Plain Text
text Plain Text
powershell PowerShell
ps PowerShell
py Python
python Python
rails Ruby
ruby Ruby
scala Scala
sql SQL
vb Visual Basic
vbnet Visual Basic
xhtml XML
xml XML
xslt XML

Phalconインストール(CentOS7.2 + PHP7.0)

Phalconについて

Phalconはphpのフレームワークです。
Phalconは最適化された高速なフレームワークで、C拡張として実装されています。
C拡張として実装されているので、かなり高速なようです。

Phalconインストール

前提

以下の環境でPhalconをインストールします。

  • ConoHa(クラウドサービス)
  • CentOS7.2
  • PHP7.0(php-fpm)
  • Nginx1.6

以下インストールのコマンドはrootユーザで実行するのを前提にしています。
必要に応じてsudoでコマンド実行してください。

Phalconのバージョンは、2.1.0です。
※2016年5月にインストールを実行した際のバージョン

php7でPhalconをインストールするのにだいぶ苦戦しました。。。

Nginxインストール

WebサーバとしてNginxを使用します。
以下コマンドでインストール

$ yum -y install nginx

PHP7インストール

Nginxではphp-fpmを使用するので、php-fpmをインストールします。
php7をrpmを取得し、インストールします

php7のrpmを取得し、実行

$ yum -y install epel-release
//rmpを取得する場所をどこでもいいですが、今回はrootディレクトリにします。
$ cd ~
$ wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
$ rpm -ivh ./remi-release-7.rpm

php-fpmインストール(必要な他のphpパッケージもインストール)

$ yum install --enablerepo=remi,remi-php70 php-fpm php-devel php-mbstring php-pdo php-gd php-xml

以下でphp-fpmのバージョンを確認できます。

$ php-fpm -v

gitインストール

Phalconをインストールするのに、gitが必要なのでインストールします。

$ yum -y install git

Phalconインストール

以下の公式ブログを参考にインストールします。
https://blog.phalconphp.com/post/phalcon-2-1-0-RC1-released

必要なパッケージをインストール

$ yum install php-devel pcre-devel gcc make re2c

zephirインストール

php7に対応したPhalconをインストールするのに、zephirを使用します。
zephirはphpを拡張するためのphpエクステンションを生成する開発言語です。

gitからソースを持って来てインストールします。
今回は、gitから持ってくるソースを「/var/www/html/」下にします。

$ cd /var/www/html/
$ git clone https://github.com/phalcon/zephir
$ cd zephir/
$ ./install-nosudo

以下のコマンドを実行し、「zephir」と表示されれば、インストールOKです。

$ zephir

 _____              __    _
/__  /  ___  ____  / /_  (_)____
  / /  / _ \/ __ \/ __ \/ / ___/
 / /__/  __/ /_/ / / / / / /
/____/\___/ .___/_/ /_/_/_/
         /_/

Zephir version 0.9.3a-dev-0abce0f671
・・・・・

コンパイル

git cloneでソースを持ってきます。
今回は「/var/www/html/」下にソースを配置します。

masterブランチはまだphp7に対応していないようでエラーになるので、2.1.xブランチを使用します。
Warning出ますがインストール完了できます。

$ cd /var/www/html
$ git clone git://github.com/phalcon/cphalcon.git
$ cd cphalcon/
$ git checkout 2.1.x
$ zephir build
・・・・・・・
Copying new kernel files...
Preparing for PHP compilation...
Preparing configuration file...
Compiling...
Installing...
Extension installed!
Add extension=phalcon.so to your php.ini
Don't forget to restart your web server

拡張モジュール追加

phalconの拡張モジュールをphpに追加します。
「/etc/php.d/」以下に「extension=phalcon.so」を記述して、読み込む設定をします。
今回は「/etc/php.d/」以下にphalcon.iniというファイルを作成してます。

$ vi /etc/php.d/phalcon.ini
//以下を記述
extension=phalcon.so

上記でインストール完了です。
既にphp-fpmを起動済みでしたら、php-fpmの再起動が必要なので再起動してください。

/bin/systemctl restart php-fpm

Phalconインストールの確認

Phalconがインストールされているか確認します。
以下のマニュアルを参考に確認できます。
https://docs.phalconphp.com/ja/latest/reference/tutorial.html#id2

Nginx、php-fpmを起動していなければ起動してください。

$ /bin/systemctl start php-fpm
$ /bin/systemctl start nginx

get_loaded_extensions()を表示するか、phpinfo()を表示して、PhalconがあればOKです。

<?php print_r(get_loaded_extensions()); ?>

or

<?php echo phpinfo(); ?>

get_loaded_extensions()の場合は、以下のように「phalcon」という記載があればOKです。

Array
(
    [0] => Core
    [1] => libxml
    [2] => filter
    [3] => SPL
    [4] => standard
    [5] => phalcon
    [6] => pdo_mysql
)

phpinfo()の場合は、以下のようなPhalconのセクションがあればOKです。
phpinfo()のPhalconセクション

※画面が見れない場合は、centOS7のfirewallの設定の可能性があります。firewallかiptablesの設定で、80又は443ポートが開放されていない可能性があるので確認してください。

ちなみに、firewallで80番ポートを開放する場合は以下のコマンドで可能です。

$ firewall-cmd --add-service=http --zone=public --permanent

以上で、インストールまで完了になります。
お疲れさまでした。

実際に動かしてみるのは、以下のチュートリアルを参考に!
Phalconチュートリアル実装

Phalconチュートリアル実装(PHP Framework)

Phalconのマニュアルにあるチュートリアルを実装し、画面に「Hello!」が表示されるところまで行います。
Phalconのインストールは以下の内容で済んでいる前提です。

Phalconインストール(CentOS7.2 + PHP5.4)
または
Phalconインストール(CentOS7.2 + PHP7.0)

Phalconのサンプルソース取得

以下のマニュアルを参考にチュートリアルのソースを取得し、「Hello!」を表示します。
https://docs.phalconphp.com/ja/latest/reference/tutorial.html#id3

今回は、「/var/www/html/」配下にサンプルソースを配置します。
git cloneすることで、html下にtutorialフォルダが作成されます。

$ cd /var/www/html/
$ git clone https://github.com/phalcon/tutorial.git

Nginxの設定

以下のマニュアルを参考にnginx.confまたは、conf.d配下のconfファイルにnginxの設定を行います。
https://docs.phalconphp.com/ja/latest/reference/nginx.html

今回は、マニュアルの「$_SERVER[‘REQUEST_URI’] をURIsとする場合」の設定を使用します。
プロジェクトフォルダは「/var/www/html/tutorial/」です。
rootに設定するディレクトリは「/var/www/html/tutorial/public」ですので、ご注意を!

server {
    listen      80;
    server_name localhost;
    root        /var/www/html/tutorial/public;
    index       index.php index.html index.htm;

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

    location ~ \.php$ {
        try_files     $uri =404;

        fastcgi_pass  127.0.0.1:9000;
        fastcgi_index /index.php;

        include fastcgi_params;
        fastcgi_split_path_info       ^(.+\.php)(/.+)$;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    location ~ /\.ht {
        deny all;
    }
}

設定が完了したら、Nginxを再起動します。

$ /bin/systemctl restart nginx

以上で完了です。
ブラウザでアクセスすると、「Hello!」が表示されると思います。
お疲れさまでした。

Phalconインストール(CentOS7.2 + PHP5.4)

Phalconについて

Phalconはphpのフレームワークです。
Phalconは最適化された高速なフレームワークで、C拡張として実装されています。
C拡張として実装されているので、かなり高速なようです。

Phalconインストール

前提

以下の環境でPhalconをインストールします。

  • ConoHa(クラウドサービス)
  • CentOS7.2
  • PHP5.4(php-fpm)
  • Nginx1.6

以下インストールのコマンドはrootユーザで実行するのを前提にしています。
必要に応じてsudoでコマンド実行してください。

Phalconのバージョンは、2.0.13です。
※2016年5月にインストールを実行した際のバージョン

Nginxインストール

WebサーバとしてNginxを使用します。
以下コマンドでインストール

$ yum -y install nginx

PHPインストール

Nginxではphp-fpmを使用するので、php-fpmをインストールします。
以下コマンドでインストール

$ yum -y install php-fpm

gitインストール

Phalconをインストールするのに、gitが必要なのでインストールします。

$ yum -y install git

Phalconインストール

以下のマニュアル通りでインストールできます。
https://docs.phalconphp.com/ja/latest/reference/install.html

ここにもインストールのコマンドを載せておきます。

必要なパッケージをインストール

$ yum install php-devel pcre-devel gcc make

コンパイル

git cloneでソースを持ってきます。
今回は「/var/www/html/」下にソースを配置します。

$ cd /var/www/html
$ git clone --depth=1 git://github.com/phalcon/cphalcon.git
$ cd cphalcon/build
$ ./install
・・・・・・・
Thanks for compiling Phalcon!
Build succeed: Please restart your web server to complete the installation

拡張モジュール追加

phalconの拡張モジュールをphpに追加します。
「/etc/php.d/」以下に「extension=phalcon.so」を記述して、読み込む設定をします。
今回は「/etc/php.d/」以下にphalcon.iniというファイルを作成してます。

$ vi /etc/php.d/phalcon.ini
//以下を記述
extension=phalcon.so

上記でインストール完了です。
既にphp-fpmを起動済みでしたら、php-fpmの再起動が必要なので再起動してください。

/bin/systemctl restart php-fpm

が・・・ここで発覚したのが、phalconのモジュールが読み込まれないという問題
以下コマンドでエラーの内容が出てきました。

$ php-fpm -v
NOTICE: PHP message: PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/phalcon.so' - /usr/lib64/php/modules/phalcon.so: undefined symbol: php_pdo_get_dbh_ce in Unknown on line 0
PHP 5.4.16 (fpm-fcgi) (built: May 12 2016 13:47:35)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

php-pdoが足りないようなので、php-pdoをインストールして解決できました。

$ yum -y install php-pdo

これで、phalconのモジュールが読み込まれインストール完了です。

Phalconインストールの確認

Phalconがインストールされているか確認します。
以下のマニュアルを参考に確認できます。
https://docs.phalconphp.com/ja/latest/reference/tutorial.html#id2

Nginx、php-fpmを起動していなければ起動してください。

$ /bin/systemctl start php-fpm
$ /bin/systemctl start nginx

get_loaded_extensions()を表示するか、phpinfo()を表示して、PhalconがあればOKです。

<?php print_r(get_loaded_extensions()); ?>

or

<?php echo phpinfo(); ?>

get_loaded_extensions()の場合は、以下のように「phalcon」という記載があればOKです。

Array
(
    [0] => Core
    [1] => libxml
    [2] => filter
    [3] => SPL
    [4] => standard
    [5] => phalcon
    [6] => pdo_mysql
)

phpinfo()の場合は、以下のようなPhalconのセクションがあればOKです。
phpinfo()のPhalconセクション

※画面が見れない場合は、centOS7のfirewallの設定の可能性があります。firewallかiptablesの設定で、80又は443ポートが開放されていない可能性があるので確認してください。

ちなみに、firewallで80番ポートを開放する場合は以下のコマンドで可能です。

$ firewall-cmd --add-service=http --zone=public --permanent

以上で、インストールまで完了になります。
お疲れさまでした。

実際に動かしてみるのは、以下のチュートリアルを参考に!
Phalconチュートリアル実装