#author("2018-11-11T23:53:39+09:00","default:wikiwriter","wikiwriter") #author("2018-11-22T17:29:13+09:00","default:wikiwriter","wikiwriter") &tag(MacPorts/php5); *目次 [#l3dd79e7] #contents *参考情報 [#p2c3da62] -[[MacPorts]] -[[MacPortsでApache2+PHP5: JavaFlavor Weblog:http://javaflavor.cocolog-nifty.com/blog/2007/07/macportsapache2_43a4.html]] -[[Install Apache 2 and PHP 5 with MacPorts | 2 tablespoons:http://2tbsp.com/content/install_apache_2_and_php_5_macports]] -[[Snow LeopardなMacBookにMacPortsで開発環境入れ直し(Apache2/PHP5/MySQL5/PostgreSQL8.3) [C!]:http://creazy.net/2010/01/install_macports_snow_leopard.html]] *インストール&apache2に設定 [#qd207bcc] **必要なportのインストール [#g717b74e] -apache2用から使用するモジュール、mysql、mbstringモジュールをインストール。 $ sudo port install php56-apache2handler php56-mysql php56-mbstring -以下のような情報が表示される。 --php56 #pre{{ To customize php56, copy /opt/local/etc/php56/php.ini-development (if this is a development server) or /opt/local/etc/php56/php.ini-production (if this is a production server) to /opt/local/etc/php56/php.ini and then make changes. }} --php56-apache2handler #pre{{ cd /opt/local/lib/apache2/modules sudo /opt/local/bin/apxs -a -e -n php5 mod_php56.so }} --php56-mysql #pre{{ To use mysqlnd with a local MySQL server, edit /opt/local/etc/php56/php.ini and set mysql.default_socket, mysqli.default_socket and pdo_mysql.default_socket to the path to your MySQL server's socket file. For mysql5, use /opt/local/var/run/mysql5/mysqld.sock For mysql51, use /opt/local/var/run/mysql51/mysqld.sock For mysql55, use /opt/local/var/run/mysql55/mysqld.sock For mysql56, use /opt/local/var/run/mysql56/mysqld.sock For mariadb, use /opt/local/var/run/mariadb/mysqld.sock For percona, use /opt/local/var/run/percona/mysqld.sock }} -インストールが終わったらapache2のモジュールとして組み込む #pre{{ cd /opt/local/lib/apache2/modules sudo /opt/local/bin/apxs -a -e -n php5 mod_php56.so }} **httpd.confの基本設定 [#d8395f6e] -httpd.confの編集 --httpd.confを開く #pre{{ $ cd /opt/local/etc/apache2 $ vi httpd.conf }} --dir_moduleの変更 #pre{{ <IfModule dir_module> DirectoryIndex index.html index.php </IfModule> }} --mime_moduleの最後に追加 #pre{{ AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps }} -php.iniの作成 --php.iniを作成して開く $ cd /opt/local/etc/php56 $ sudo cp php.ini-development php.ini $ sudo vi php.ini --文字コードをUTF-8で統一する([[MacOSXにPHP5,MySQL5をインストール:http://fujisan.sunnyday.jp/mac/macosx-php5.html]]) #pre{{ [mbstring] mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.http_input = auto mbstring.http_output = UTF-8 mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none; mbstring.func_overload = 1 }} --タイムゾーンも設定しておいたほうがよいかも。 #pre{{ [Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone date.timezone = "Asia/Tokyo" }} ※dokuwikiを使用する場合、func_overload = 0じゃないとだめ。 -再起動 $ sudo /opt/local/sbin/apachectl restart **MySQLとの接続設定 [#h27a0f21] -/opt/local/etc/php5/php.iniを編集。mysql.default_socket、mysqli.default_socket and、pdo_mysql.default_socketに次の値を設定。 /opt/local/var/run/mysql5/mysqld.sock -mysql5.5と接続する場合 /opt/local/var/run/mysql55/mysqld.sock * pear [#o5d8f8d6] **phpunitのインストール [#ybc7959f] -チャンネル追加 $ sudo pear channel-discover pear.phpunit.de $ sudo pear channel-discover pear.symfony-project.com $ sudo pear channel-discover pear.symfony.com -インストール $ sudo pear install --alldeps phpunit/PHPUnit *IntelliJで使う [#f541523c] -php5自体は先程の設定でインストール。 -さらにphp5-xdebugをインストール。 sudo port install php5-xdebug -PHPUnitはpearでインストール sudo pear install phpunit *再インストール [#d9aeb3cb] -別のオプションをつけてインストールし直したい場合cleanしてからinstallする #pre{{ $ sudo port clean php5 $ sudo port install php5 +apache2 +pear }} *動作確認 [#g9161404] -DocumentRootにinfo.phpを作成 #pre{{ cd /opt/local/apache2/htdocs/ vi info.php }} -phpの情報を表示する。 #pre{{ <?php phpinfo(); ?> }} -http://localhost/info.phpにアクセス。 *Tips [#mb712daf] **xdebugを使用する [#eaeae4f8] -エラーや警告を分かりやすく表示するxdebugを使う。 sudo port install php5-xdebug *トラブルシューティング [#x1f03a9c] **文字化けする [#meae9d26] ブラウザのデフォルトエンコーディングとあってない場合UTF-8でそのまま出力すると文字化けするかも。ブラウザによってはでるかもしれないけど、基本的にはcharsetを指定しないとだめ。 #pre{{ <?php header("Content-Type: text/html; charset=UTF-8"); ?> }} **Call to undefined function mb_convert_kana() [#ebcb75f8] -php53-mbstringがインストールされていないか、php.iniで有効になっていない。 **WordPressでプラグインインストール時に「要求されたリクエストを完了できる HTTP トランスポートがありません」 [#q9d85450] -以下でインストール sudo port install php53-openssl php53-curl -php.iniで有効化 #pre{{ extension=php_curl.dll extension=php_openssl.dll }} *古い情報 [#k8577cb4] **php53時代のインストール [#ha97bf7b] -MacPortsのapache2用のインストール $ sudo port install php53 +apache2 +pear $ sudo port select php php53