Vagrant上のUbuntu14.04にCakePHPをインストールする(準備編)
mod_rewriteを有効にする
CakePHPの公式を見るとApache2でmod_rewriteを有効にすることが推奨されるとのことなので早速やってみる。
まずはmod_rewriteが利用可能となっているかを確認する。
cat /etc/apache2/mods-available/rewrite.load
とコマンドを打つと
LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
と表示された。
モジュールは使える状態みたいです。
有効化してみよう。
sudo a2enmod rewrite
コマンドを打つと以下が表示された。
Enabling module rewrite. To activate the new configuration, you need to run: service apache2 restart
service apache2 restartしてくれと言われたので
sudo service apache2 restart
これで完了。
PHP 5.6.0 以上 (PHP 7.1 も含む)にする
前回の記事でPHPのバージョンをアップした。
mbstring PHP 拡張
PHP7用のmbstringをインストール。
sudo apt-get install php7.0-mbstring
php.iniを編集する
cd /etc/php/7.0/apache2 sudo vim php.ini
Dynamic Extensions の欄に extention=mbstring.so を追記
extention=mbstring.so
Vimで
/mbstring
と打つと検索できるので[mbstring]の欄まで移動する。
</p> <p>[mbstring] ; language for internal character representation. ; This affects mb_send_mail() and mbstring.detect_order. ; <a href="http://php.net/mbstring.language">http://php.net/mbstring.language</a> mbstring.language = Japanese ← コメント解除</p> <p>; Use of this INI entry is deprecated, use global internal_encoding instead. ; internal/script encoding. ; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) ; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. ; The precedence is: default_charset &lt; internal_encoding &lt; iconv.internal_encoding mbstring.internal_encoding = UTF-8 ← コメント解除&amp;UTF-8に設定</p> <p>; Use of this INI entry is deprecated, use global input_encoding instead. ; http input encoding. ; mbstring.encoding_traslation = On is needed to use this setting. ; If empty, default_charset or input_encoding or mbstring.input is used. ; The precedence is: default_charset &lt; intput_encoding &lt; mbsting.http_input ; <a href="http://php.net/mbstring.http-input">http://php.net/mbstring.http-input</a> mbstring.http_input = auto ← コメント解除&amp;autoに設定</p> <p>; Use of this INI entry is deprecated, use global output_encoding instead. ; http output encoding. ; mb_output_handler must be registered as output buffer to function. ; If empty, default_charset or output_encoding or mbstring.http_output is used. ; The precedence is: default_charset &lt; output_encoding &lt; mbstring.http_output ; To use an output encoding conversion, mbstring's output handler must be set ; otherwise output encoding conversion cannot be performed. ; <a href="http://php.net/mbstring.http-output">http://php.net/mbstring.http-output</a> mbstring.http_output = UTF-8 ← コメント解除&amp;UTF-8に設定</p> <p>; enable automatic encoding translation according to ; mbstring.internal_encoding setting. Input chars are ; converted to internal encoding by setting this to On. ; Note: Do <em>not</em> use automatic encoding translation for ; portable libs/applications. ; <a href="http://php.net/mbstring.encoding-translation">http://php.net/mbstring.encoding-translation</a> mbstring.encoding_translation = On ← コメント解除&amp;Onに。</p> <p>; automatic encoding detection order. ; "auto" detect order is changed according to mbstring.language ; <a href="http://php.net/mbstring.detect-order">http://php.net/mbstring.detect-order</a> mbstring.detect_order = auto ← コメント解除</p> <p>; substitute_character used when character cannot be converted ; one from another ; <a href="http://php.net/mbstring.substitute-character">http://php.net/mbstring.substitute-character</a> ;mbstring.substitute_character = none</p> <p>; overload(replace) single byte functions by mbstring functions. ; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), ; etc. Possible values are 0,1,2,4 or combination of them.</p> <p>; For example, 7 for overload everything. ; 0: No overload ; 1: Overload mail() function ; 2: Overload str<em>() functions ; 4: Overload ereg</em>() functions ; <a href="http://php.net/mbstring.func-overload">http://php.net/mbstring.func-overload</a> ;mbstring.func_overload = 0</p> <p>; enable strict encoding detection. ; Default: Off ;mbstring.strict_detection = On</p> <p>; This directive specifies the regex pattern of content types for which mb_output_handler() ; is activated. ; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml+xml) ;mbstring.http_output_conv_mimetype=</p> <p>
あとの設定はよくわからないので放置。
設定が終わったら必ずapache再起動。
sudo service apache2 restart
<?php print_r(mb_get_info()); ?>
と書いただけのphp_check.phpを作成する。
ブラウザからphp_check.phpを見てみる。
Array ( [internal_encoding] => UTF-8 [http_output] => UTF-8 [http_output_conv_mimetypes] => ^(text/|application/xhtml+xml) [func_overload] => 0 [func_overload_list] => no overload [mail_charset] => ISO-2022-JP [mail_header_encoding] => BASE64 [mail_body_encoding] => 7bit [illegal_chars] => 0 [encoding_translation] => On [language] => Japanese [detect_order] => Array ( [0] => ASCII [1] => JIS [2] => UTF-8 [3] => EUC-JP [4] => SJIS ) [substitute_character] => 63 [strict_detection] => Off )
このように表示された。php-mbstring の導入は完了。
ここまでやったあとに、
どうやら
sudo apt-get install php7.0-intl php7.0-mbstring
で一発解決できるみたい。
intl PHP 拡張
上に書いた一発解決のやり方でインストール。
sudo apt-get install php7.0-intl
何故かaptからインストールするとphp.iniにextension=を記述しなくても使えるらしい。
ココらへんはよくわからず。
simplexml PHP 拡張
公式サイトを見ると、デフォルトで有効になっているとのこと。
これで準備が完了した。
ディスカッション
コメント一覧
まだ、コメントがありません