Home > Tags > PHP
PHP
[Mac]SnowLeopardで開発環境構築するよ – MacPortsでApache、PHP、MySQL、PostgreSQLをインストールする[SnowLeopard]
- Apacheをインストール
- インストール
$ sudo port install apache2
- 自動起動設定
$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist
- httpd.confを編集
$ sudo vi /opt/local/apache2/conf/httpd.conf
ServerAdmin you@example.com ↓ ServerAdmin webmaster@localhost ServerName www.example.com:80 ↓ ServerName localhost DocumentRoot "/opt/local/apache2/htdocs" ↓ DocumentRoot "/Users/bubbkis/Sites" <Directory /> Options FollowSymLinks AllowOverride None # Order deny,allow ←コメントアウト追加 # Deny from all ←コメントアウト追加 </Directory> <Directory "/opt/local/apache2/htdocs"> ↓ <Directory "/Users/bubbkis/Sites"> ## <Directory "/Users/bubbkis/Sites">内のOptionsとAllowOverrideを以下の様に修正。 Options Indexes Includes ExecCGI FollowSymLinks MultiViews AllowOverride All DirectoryIndex index.html ↓ DirectoryIndex index.php index.html index.htm ## <Directory "/opt/local/apache2/cgi-bin">内のOptionsを以下の様に修正。 Options Indexes Includes ExecCGI FollowSymLinks MultiViews #AddHandler cgi-script .cgi ↓ AddHandler cgi-script .cgi .pl .rb #Include conf/extra/httpd-languages.conf ↓ Include conf/extra/httpd-languages.conf #Include conf/extra/httpd-default.conf ↓ Include conf/extra/httpd-default.conf
- Apache起動
$ /opt/local/apache2/bin/apachectl configtest $ sudo /opt/local/apache2/bin/apachectl graceful
- インストール
- MySQLをインストール
- インストール
$ sudo port install mysql5 +innodb_plugin $ sudo port install mysql5-server
- 初期化
$ sudo -u mysql mysql_install_db5
- MySQL起動
$ sudo /opt/local/share/mysql5/mysql/mysql.server start
- 自動起動設定
$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
- MySQLのrootアカウントへパスワードを設定
$ /opt/local/lib/mysql5/bin/mysqladmin -u root password '******'
$ mysql -u root -p mysql> select user,host,password from mysql.user; mysql> set password for root@'bubbkis-MacBook.llocal'=password('パスワード'); mysql> set password for root@'127.0.0.1'=password('パスワード'); mysql> exit - MySQL設定ファイル編集
$ sudo cp /opt/local/share/mysql5/mysql/my-medium.cnf /opt/local/etc/mysql5/my.cnf $ sudo vi /opt/local/etc/mysql5/my.cnf
##[mysqld]の項目へ追加 character-set-server = utf8 collation-server = utf8_unicode_ci init-connect = 'SET NAMES utf8' skip-character-set-client-handshake ##[mysqldump]の項目へ追加 default-character-set = utf8 ##[mysql]の項目へ追加 default-character-set = utf8
- MySQL再起動
$ sudo /opt/local/share/mysql5/mysql/mysql.server restart
- インストール
- PostgreSQLをインストール(2009/12/01現在、phpがpostgresql83までしか対応してない)
- インストール
$ sudo port install postgresql83 +perl +python $ sudo port install postgresql83-server
- 自動起動設定
$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.postgresql83-server.plist
- 初期化
$ sudo mkdir -p /opt/local/var/db/postgresql83/defaultdb $ sudo chown postgres:postgres /opt/local/var/db/postgresql83/defaultdb $ sudo su postgres -c '/opt/local/lib/postgresql83/bin/initdb -D /opt/local/var/db/postgresql83/defaultdb'
- PostgreSQL起動
$ sudo su postgres -c '/opt/local/lib/postgresql83/bin/postgres -D /opt/local/var/db/postgresql83/defaultdb' or $ sudo su postgres -c '/opt/local/lib/postgresql83/bin/pg_ctl -D /opt/local/var/db/postgresql83/defaultdb start'
- PL/pgSQL && dblinkをインストール
$ sudo su postgres sh-3.2$ createdb testdb sh-3.2$ /opt/local/lib/postgresql83/bin/createlang plpgsql testdb sh-3.2$ psql -U postgres -d testdb < /opt/local/var/macports/software/postgresql83/8.3.8_1/opt/local/share/postgresql83/contrib/dblink.sql
インストール後、これらを使いたい場合は「testdb」をテンプレートDBとして新規DBを作成し使う。
- postgresアカウントへパスワードを設定
sh-3.2$ psql template1 template1=# alter user postgres with password '******'; template1=# \q
- 一般ユーザへのデータベース作成権限設定
sh-3.2$ createuser -AdPE bubbkis sh-3.2$ exit
- PostgreSQL設定ファイル編集
postgresql.confを編集。$ sudo vi /opt/local/var/db/postgresql83/defaultdb/postgresql.conf
#listen_addresses = 'localhost' ↓ listen_addresses = '*'
pg_hba.confを編集
$ sudo vi /opt/local/var/db/postgresql83/defaultdb/pg_hba.conf
#追記 host all all 0.0.0.0 0.0.0.0 password
- PostgreSQL再起動
$ sudo su postgres -c '/opt/local/lib/postgresql83/bin/pg_ctl -D /opt/local/var/db/postgresql83/defaultdb restart'
- インストール
- PHPをインストール
- いろいろインストール
$ sudo port install php5 +apache2 +mysql5 +pear +postgresql83 +sqlite $ sudo port install php5-curl $ sudo port install php5-exif $ sudo port install php5-gd $ sudo port install php5-gettext $ sudo port install php5-imagick $ sudo port install php5-mbstring $ sudo port install php5-mcrypt $ sudo port install php5-mysql $ sudo port install php5-postgresql +postgresql83 $ sudo port install php5-readline $ sudo port install php5-sqlite $ sudo port install php5-sqlite3 $ sudo port install php5-xmlrpc $ sudo port install php5-zip $ sudo port install php5-zlib $ sudo pear upgrade PEAR
- ApacheへPHPモジュールを読み込ませる
$ cd /opt/local/apache2/modules $ sudo /opt/local/apache2/bin/apxs -a -e -n "php5" libphp5.so
- PHP設定ファイル編集
$ sudo cp /opt/local/etc/php5/php.ini-development /opt/local/etc/php5/php.ini or $ sudo cp /opt/local/etc/php5/php.ini-production /opt/local/etc/php5/php.ini $ sudo vi /opt/local/etc/php5/php.inimax_execution_time = 30 ↓ max_execution_time = 0 post_max_size = 8M ↓ post_max_size = 64M upload_max_filesize = 2M ↓ upload_max_filesize = 64M ;date.timezone = ↓ date.timezone = Asia/Tokyo mysql.default_socket = ↓ mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock mysqli.default_socket = ↓ mysqli.default_socket = /opt/local/var/run/mysql5/mysqld.sock pdo_mysql.default_socket = ↓ pdo_mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock
- Apache設定ファイル編集
$ sudo vi /opt/local/apache2/conf/httpd.conf
# 追記 Include conf/extra/mod_php.conf
- Apache再起動
$ sudo /opt/local/apache2/bin/apachectl restart
- いろいろインストール
このインストールしたPHPはバージョンが5.3なんで注意。MacPortsにまだ5.2系が残ってたけど、モジュール類が5.3対応となってたんで5.2系はインストールしませんでした。
ただこれまで5.2系で開発してたんで5.3にバージョン上げると動きませんorz
5.3系の環境も欲しかったのでMacPortsは5.3な環境。
5.2系の環境も必須なんでVMwareFusionにCentOSなりDebianなりをインストールして環境を作ることにしました。
- Comments: 0
- Trackbacks: 0
[CentOS]CentOS5の「PHP、MySQL、PostgreSQL」のバージョンをYumでアップデートする。
なんかサーバーを弄ってたら、PHPとかMySQLとかPostgresのバージョンを無性に上げたくなってきたからバージョンアップした。全部、自前でbuildなんてやってられんので全てYumで管理します。
CentOSのリポジトリのPHPなんて5.1.6とかPostgresが8.1とか・・・ねぇ?って感じだったのでつい・・・
ということでインストールメモ開始。このブログ、インストールメモ専門になってきたな・・・
- まず標準のCentOSのリポジトリからPHP、MySQL、PostgreSQLを除外する.。
# vi /etc/yum.repos.d/CentOS-Base.repo [base] ## [base]の項目に↓を追加 exclude=postgresql* php* mysql* [updates] ## [updates]の項目にも↓を追加 exclude=postgresql* php* mysql*
- PHPとMySQLをアップデートする用にまずリポジトリ追加。
# rpm --import http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka # vi /etc/yum.repos.d/utterramblings.repo ## ←のファイル作って以下の内容で保存。 [utterramblings] name=Jason's Utter Ramblings Repo baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/ enabled=1 gpgcheck=1 gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
- PostgreSQLをアップデートする用にやっぱりまずはリポジトリ追加。
# wget http://yum.pgsqlrpms.org/reporpms/8.3/pgdg-centos-8.3-5.noarch.rpm # rpm -ivh pgdg-centos-8.3-5.noarch.rpm
- PHPとMySQLとPostgreSQLをアップデート。
# yum update
- ※ x86_64な環境の人で、既にMySQLをインストールしている人は一度削除してからインストールしなおしてください。(mysql、mysql-devel、mysql-server)
# yum -y remove mysql mysql-devel mysql-server # yum -y install mysql mysql-devel mysql-server
- ※ 既にPostgreSQLをインストール済の人で「古いバージョンの〜〜〜アップグレードする必要があります。」と言われた場合
- dataを削除、またはリネーム
# mv /var/lib/pgsql/data /var/lib/pgsql/data.old
- DB初期化
# /etc/init.d/postgresql initdb
- PostgreSQL再起動
# /etc/init.d/postgresql restart
- dataを削除、またはリネーム
- ※ x86_64な環境の人で、既にMySQLをインストールしている人は一度削除してからインストールしなおしてください。(mysql、mysql-devel、mysql-server)
- リポジトリ追加したらyumでXcacheとかPostGISがインストールできるようになってたからインストールした。
# yum -y install php-xcache postgis
各設定は以下を参考に。Ubuntu用に書いたけどほとんどいっしょなので。
- [Ubuntu]Ubuntu8.10へApache、PHP、MySQL、PostgreSQLをインストールする。[LAMP]
- [PHP]CentOSへXCacheをインストールしたメモ。[XCache]
xcache.ini : /etc/php.d/xcache.ini - [Ubuntu]Ubuntu8.10でPostGISを使えるようにする。[PostGIS]
lwpostgis.sql : /usr/share/pgsql/contrib/lwpostgis.sql
spatial_ref_sys.sql : /usr/share/pgsql/contrib/spatial_ref_sys.sql
php.ini : /etc/php.ini
my.cnf : /etc/my.cnf
postgresql.conf : /var/lib/pgsql/data/postgresql.conf
pg_hba.conf : /var/lib/pgsql/data/pg_hba.conf
- Comments: 0
- Trackbacks: 0
[PHP]CentOSへXCacheをインストールしたメモ。[XCache]
またインストールメモ。今後、サーバーを作る時用の自分用メモばっか書いてますな、最近。
ということで、CentOS5.2へXCacheをインストールしました。
- phpizeの為に、php-deveをインストール。
# yum -y install php-devel
- Xcacheの取得 && インストール。
# cd /usr/local/src # wget http://xcache.lighttpd.net/pub/Releases/1.2.2/xcache-1.2.2.tar.gz # tar zxvf xcache-1.2.2.tar.gz # cd xcache-1.2.2 # phpize # ./configure --enable-xcache --enable-xcache-coverager # make # make test # make install
インストール後、表示されるパスをメモしておく。↓みたいな。
Installing shared extensions: /usr/lib64/php/modules/
- XCacheのWebインタフェースを公開ディレクトリへコピー。
# cp -R admin /var/www/html/ # cp -R coverager /var/www/html/ # mv /var/www/html/admin /var/www/html/xcache
- XCacheの設定。
# mkdir /tmp/pcov # chown apache.apache /tmp/pcov ##←Apache実行ユーザーへ # cat xcache.ini >> /etc/php.ini # cat /proc/cpuinfo | grep -c processor ##←表示された数値をメモ。 # echo "< ?php echo md5('pass'); ?>" | php ##←表示された文字列をメモ。 # vi /etc/php.ini以下、/etc/php.ini のXCache設定内容。
- zend_extension = インストール後表示されたパスを指定。
- xcache.count = # cat /proc/cpuinfo | grep -c processor で表示された数値。
- xcache.admin.user = “hoge” # 適当なユーザーを指定。
- xcache.admin.pass = # echo “< ?php echo md5('pass'); ?>” | php で表示された文字列。
[xcache-common] ;; install as zend extension (recommended), normally "$extension_dir/xcache.so" ;zend_extension = /usr/local/lib/php/extensions/non-debug-non-zts-xxx/xcache.so zend_extension = /usr/lib64/php/modules/xcache.so ; zend_extension_ts = /usr/local/lib/php/extensions/non-debug-zts-xxx/xcache.so ;; For windows users, replace xcache.so with php_xcache.dll ;zend_extension_ts = c:/php/extensions/php_xcache.dll ;; or install as extension, make sure your extension_dir setting is correct ; extension = xcache.so ;; or win32: ; extension = php_xcache.dll [xcache.admin] xcache.admin.enable_auth = On xcache.admin.user = "hoge" ; xcache.admin.pass = md5($your_password) xcache.admin.pass = "******************************" [xcache] ; ini only settings, all the values here is default unless explained ; select low level shm/allocator scheme implemenation xcache.shm_scheme = "mmap" ; to disable: xcache.size=0 ; to enable : xcache.size=64M etc (any size > 0) and your system mmap allows xcache.size = 64M ; set to cpu count (cat /proc/cpuinfo |grep -c processor) xcache.count = 1 ; just a hash hints, you can always store count(items) > slots xcache.slots = 8K ; ttl of the cache item, 0=forever xcache.ttl = 0 ; interval of gc scanning expired items, 0=no scan, other values is in seconds xcache.gc_interval = 0 ; same as aboves but for variable cache xcache.var_size = 8M xcache.var_count = 1 xcache.var_slots = 8K ; default ttl xcache.var_ttl = 600 xcache.var_maxttl = 3600 xcache.var_gc_interval = 300 xcache.test = Off ; N/A for /dev/zero xcache.readonly_protection = Off ; for *nix, xcache.mmap_path is a file path, not directory. ; Use something like "/tmp/xcache" if you want to turn on ReadonlyProtection ; 2 group of php won't share the same /tmp/xcache ; for win32, xcache.mmap_path=anonymous map name, not file path xcache.mmap_path = "/tmp/xcache" ; leave it blank(disabled) or "/tmp/phpcore/" ; make sure it's writable by php (without checking open_basedir) xcache.coredump_directory = "" ; per request settings xcache.cacher = On xcache.stat = On xcache.optimizer = Off [xcache.coverager] ; per request settings ; enable coverage data collecting for xcache.coveragedump_directory and xcache_coverager_start/stop/get/clean() functions (will hurt executing performance) xcache.coverager = On ; ini only settings ; make sure it's readable (care open_basedir) by coverage viewer script ; requires xcache.coverager=On xcache.coveragedump_directory = "/tmp/pcov"
- Apacheを再起動。
# /etc/rc.d/init.d/httpd restart
- /var/www/html/coveragerディレクトリへ.htaccessを設置。↓内容。
AuthUserFile /etc/httpd/conf/.htpasswd AuthGroupFile /dev/null AuthName "XCache Coverage Viewer" AuthType Basic #require valid-user require user hoge
以上。
- Comments: 0
- Trackbacks: 0
[cakephp]FormHelperから自動出力されるdiv要素を消す方法。
div要素を外したい場合には
$form->submit('登録', array('div'=>false)); $form->input("User/name", array("type"=>"text", "label"=>false, "div"=>false));
こんな感じ。
- Comments: 0
- Trackbacks: 0
CakePHP の findAll の条件に IN 演算子を使うには
CakePHP の findAll の条件に IN 演算子を使うには
$this->model->findAll(array('field IN (1,2,3)'));
または、
$params = array(1,2,3); $this->model->findAll(array('field' => $params));
- Comments: 0
- Trackbacks: 0
Home > Tags > PHP
- Search
- Feeds
- Meta