PHP基本のきほん

前回の初心者のためのviエディタの使い方と同様,ゼミ生のための資料です.

はじめに

PHP(PHP: Hypertext Preprocessor)は,Webサーバ上で実行されるサーバサイドスクリプト言語です.初期バージョンは,1995年にリリースされています.

特徴は以下のとおりです.

  • インタープリタ型言語
  • C言語やJavaに似た文法(オブジェクト指向のサポート)
  • RubyやPerlと似た弱いデータ型
  • 多くのWebサーバにてモジュールとして対応(Apache,IIS等)
  • HTMLにプログラムを埋め込むことが可能
  • データベースインターフェースのサポート(MySQL,PostgreSQL,SQLite,ODBC等)

参考文献 Wikipedia(PHP:_Hypertext_Preprocessor)

【実習環境】

ApacheのDoumentRootで指定したディレクトリ上(例 /Library/WebServer/Documents)に,「php_lec」のディレクトリを作成し,その中にPHPのサンプルプログラムファイルを作成し,実行を確認します.

Continue reading “PHP基本のきほん”

Vagrant環境でのbundle installで失敗する

Windows 8.1上のVagrant(CentOS Linux)にて,Ruby on Railsを利用していますが、Railsのディレクトリを、共有フォルダの /vagrant 配下にセットアップしたときに,毎回この失敗をしてしまうんです.

GemのインストールにBundlerを使っています.その際,Gemのインストールパスを次のように指定します.

$ bundle install --path vendor/bundle

これは,よくあるパターンで,Railsの作業用のディレクトリ配下のvendor/bundleにすることで,システムのGem(Shared Gems)には影響させないようにするごく一般的なやり方です.

:
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

/home/vagrant/.rbenv/versions/2.0.0-p598/bin/ruby extconf.rb
creating Makefile

Gem files will remain installed in /vagrant/test/vendor/bundle/ruby/2.0.0/gems/json-1.8.2 for inspection.
Results logged to /vagrant/test/vendor/bundle/ruby/2.0.0/gems/json-1.8.2/ext/json/ext/generator/gem_make.out
An error occurred while installing json (1.8.2), and Bundler cannot continue.
Make sure that `gem install json -v '1.8.2'` succeeds before bundling.

上のように,Native extensionなGemをインストールするときに,ExtentionBuildErrorが出てしまうのです.

「gem install json を使いなさい」と言っていますが,jsonをShared gemsとしてインストールしても,bcryptやNokogiriでも同様にエラーが出て中断してしまいます.

ログを見ても,ruby extconf.rbで問題なくMakefileは作成できているので,ネイティブなシステムライブラリのパスとかはきちんと認識できているはずなのです.ググっても,Makefileに失敗してエラーのパターンばかりで,上記のような例を見つけることができませんでした.

ひょっとして,Gemのインストール先が共有フォルダ上なのがまずいのかな,と思って,インストール先のパスを次のように変えてやってみました.

$ bundle install --path ~/hoge_gems/vendor/bundle

すると,何の問題もなく,json,Nokogiri,bcryptなどのNative extensionなGemがするりとインストールできました.

よかよか.