タグアーカイブ php5

Apache+PHP導入(Debian wheezy)

Apacheのインストール

# apt-get install apache2
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  apache2-mpm-worker apache2-utils apache2.2-bin apache2.2-common libapr1 libaprutil1 libaprutil1-dbd-sqlite3
  libaprutil1-ldap
Suggested packages:
  www-browser apache2-doc apache2-suexec apache2-suexec-custom
The following NEW packages will be installed:
  apache2 apache2-mpm-worker apache2-utils apache2.2-bin apache2.2-common libapr1 libaprutil1
  libaprutil1-dbd-sqlite3 libaprutil1-ldap
0 upgraded, 9 newly installed, 0 to remove and 4 not upgraded.
Need to get 1461 kB of archives.
After this operation, 5599 kB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 http://http.debian.net/debian/ wheezy/main libapr1 amd64 1.4.6-3 [99.6 kB]
Get:2 http://http.debian.net/debian/ wheezy/main libaprutil1 amd64 1.4.1-3 [89.8 kB]
Get:3 http://http.debian.net/debian/ wheezy/main libaprutil1-dbd-sqlite3 amd64 1.4.1-3 [19.0 kB]
Get:4 http://http.debian.net/debian/ wheezy/main libaprutil1-ldap amd64 1.4.1-3 [16.6 kB]
Get:5 http://http.debian.net/debian/ wheezy/main apache2.2-bin amd64 2.2.22-13 [779 kB]
Get:6 http://http.debian.net/debian/ wheezy/main apache2-utils amd64 2.2.22-13 [162 kB]
Get:7 http://http.debian.net/debian/ wheezy/main apache2.2-common amd64 2.2.22-13 [291 kB]
Get:8 http://http.debian.net/debian/ wheezy/main apache2-mpm-worker amd64 2.2.22-13 [2256 B]
Get:9 http://http.debian.net/debian/ wheezy/main apache2 amd64 2.2.22-13 [1432 B]
Fetched 1461 kB in 5s (245 kB/s)
Selecting previously unselected package libapr1.
(Reading database ... 22167 files and directories currently installed.)
Unpacking libapr1 (from .../libapr1_1.4.6-3_amd64.deb) ...
Selecting previously unselected package libaprutil1.
Unpacking libaprutil1 (from .../libaprutil1_1.4.1-3_amd64.deb) ...
Selecting previously unselected package libaprutil1-dbd-sqlite3.
Unpacking libaprutil1-dbd-sqlite3 (from .../libaprutil1-dbd-sqlite3_1.4.1-3_amd64.deb) ...
Selecting previously unselected package libaprutil1-ldap.
Unpacking libaprutil1-ldap (from .../libaprutil1-ldap_1.4.1-3_amd64.deb) ...
Selecting previously unselected package apache2.2-bin.
Unpacking apache2.2-bin (from .../apache2.2-bin_2.2.22-13_amd64.deb) ...
Selecting previously unselected package apache2-utils.
Unpacking apache2-utils (from .../apache2-utils_2.2.22-13_amd64.deb) ...
Selecting previously unselected package apache2.2-common.
Unpacking apache2.2-common (from .../apache2.2-common_2.2.22-13_amd64.deb) ...
Selecting previously unselected package apache2-mpm-worker.
Unpacking apache2-mpm-worker (from .../apache2-mpm-worker_2.2.22-13_amd64.deb) ...
Selecting previously unselected package apache2.
Unpacking apache2 (from .../apache2_2.2.22-13_amd64.deb) ...
Processing triggers for man-db ...
Setting up libapr1 (1.4.6-3) ...
Setting up libaprutil1 (1.4.1-3) ...
Setting up libaprutil1-dbd-sqlite3 (1.4.1-3) ...
Setting up libaprutil1-ldap (1.4.1-3) ...
Setting up apache2.2-bin (2.2.22-13) ...
Setting up apache2-utils (2.2.22-13) ...
Setting up apache2.2-common (2.2.22-13) ...
Enabling site default.
Enabling module alias.
Enabling module autoindex.
Enabling module dir.
Enabling module env.
Enabling module mime.
Enabling module negotiation.
Enabling module setenvif.
Enabling module status.
Enabling module auth_basic.
Enabling module deflate.
Enabling module authz_default.
Enabling module authz_user.
Enabling module authz_groupfile.
Enabling module authn_file.
Enabling module authz_host.
Enabling module reqtimeout.
Setting up apache2-mpm-worker (2.2.22-13) ...
[ ok ] Starting web server: apache2.
Setting up apache2 (2.2.22-13) ...

PHP5のインストール

# apt-get install php5
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  apache2-mpm-prefork libapache2-mod-php5 libonig2 libqdbm14 php5-cli php5-common psmisc
Suggested packages:
  php-pear
The following packages will be REMOVED:
  apache2-mpm-worker
The following NEW packages will be installed:
  apache2-mpm-prefork libapache2-mod-php5 libonig2 libqdbm14 php5 php5-cli php5-common psmisc
0 upgraded, 8 newly installed, 1 to remove and 4 not upgraded.
Need to get 6246 kB of archives.
After this operation, 19.4 MB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 http://http.debian.net/debian/ wheezy/main apache2-mpm-prefork amd64 2.2.22-13 [2360 B]
Get:2 http://security.debian.org/ wheezy/updates/main php5-common amd64 5.4.4-14+deb7u4 [587 kB]
Get:3 http://http.debian.net/debian/ wheezy/main psmisc amd64 22.19-1+deb7u1 [135 kB]
Get:4 http://http.debian.net/debian/ wheezy/main libonig2 amd64 5.9.1-1 [145 kB]
Get:5 http://security.debian.org/ wheezy/updates/main libapache2-mod-php5 amd64 5.4.4-14+deb7u4 [2665 kB]
Get:6 http://http.debian.net/debian/ wheezy/main libqdbm14 amd64 1.8.78-2 [153 kB]
Get:7 http://security.debian.org/ wheezy/updates/main php5 all 5.4.4-14+deb7u4 [1026 B]
Get:8 http://security.debian.org/ wheezy/updates/main php5-cli amd64 5.4.4-14+deb7u4 [2557 kB]
Fetched 6246 kB in 10s (616 kB/s)
dpkg: apache2-mpm-worker: dependency problems, but removing anyway as you requested:
 apache2 depends on apache2-mpm-worker (= 2.2.22-13) | apache2-mpm-prefork (= 2.2.22-13) | apache2-mpm-event (= 2.2.22-13) | apache2-mpm-itk (= 2.2.22-13); however:
  Package apache2-mpm-worker is to be removed.
  Package apache2-mpm-prefork is not installed.
  Package apache2-mpm-event is not installed.
  Package apache2-mpm-itk is not installed.

(Reading database ... 22750 files and directories currently installed.)
Removing apache2-mpm-worker ...
[ ok ] Stopping web server: apache2 ... waiting .
Selecting previously unselected package apache2-mpm-prefork.
(Reading database ... 22745 files and directories currently installed.)
Unpacking apache2-mpm-prefork (from .../apache2-mpm-prefork_2.2.22-13_amd64.deb) ...
Setting up apache2-mpm-prefork (2.2.22-13) ...
[ ok ] Starting web server: apache2.
Selecting previously unselected package psmisc.
(Reading database ... 22750 files and directories currently installed.)
Unpacking psmisc (from .../psmisc_22.19-1+deb7u1_amd64.deb) ...
Selecting previously unselected package php5-common.
Unpacking php5-common (from .../php5-common_5.4.4-14+deb7u4_amd64.deb) ...
Selecting previously unselected package libonig2.
Unpacking libonig2 (from .../libonig2_5.9.1-1_amd64.deb) ...
Selecting previously unselected package libqdbm14.
Unpacking libqdbm14 (from .../libqdbm14_1.8.78-2_amd64.deb) ...
Selecting previously unselected package libapache2-mod-php5.
Unpacking libapache2-mod-php5 (from .../libapache2-mod-php5_5.4.4-14+deb7u4_amd64.deb) ...
Selecting previously unselected package php5.
Unpacking php5 (from .../php5_5.4.4-14+deb7u4_all.deb) ...
Selecting previously unselected package php5-cli.
Unpacking php5-cli (from .../php5-cli_5.4.4-14+deb7u4_amd64.deb) ...
Processing triggers for man-db ...
Setting up psmisc (22.19-1+deb7u1) ...
Setting up php5-common (5.4.4-14+deb7u4) ...

Creating config file /etc/php5/mods-available/pdo.ini with new version
Setting up libonig2 (5.9.1-1) ...
Setting up libqdbm14 (1.8.78-2) ...
Setting up libapache2-mod-php5 (5.4.4-14+deb7u4) ...

Creating config file /etc/php5/apache2/php.ini with new version
[ ok ] Restarting web server: apache2 ... waiting .
Setting up php5 (5.4.4-14+deb7u4) ...
Setting up php5-cli (5.4.4-14+deb7u4) ...

Creating config file /etc/php5/cli/php.ini with new version
update-alternatives: using /usr/bin/php5 to provide /usr/bin/php (php) in auto mode

バーチャルホストの設定

# cd /etc/apache2/sites-enabled
# nano 000-default
<VirtualHost *:80>
        ServerAdmin webmaster@sitename.jp

        DocumentRoot /var/www/vhosts/www.sitename.jp
        ServerName www.sitename.jp
        ServerAlias localhost
        <Directory />
                Options FollowSymLinks
                AllowOverride FileInfo
        </Directory>
#       <Directory /var/www/html>
#               Options FollowSymLinks MultiViews
#               AllowOverride None
#               Order allow,deny
#               allow from all
#       </Directory>
#
#       ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
#       <Directory "/usr/lib/cgi-bin">
#               AllowOverride None
#               Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
#               Order allow,deny
#               Allow from all
#       </Directory>

#       ErrorLog ${APACHE_LOG_DIR}/error.log
        ErrorLog /var/log/apache2/www.sitename.jp-error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

#       CustomLog ${APACHE_LOG_DIR}/access.log combined
        CustomLog /var/log/apache2/www.sitename.jp-access.log combined
</VirtualHost>

バーチャルホストのディレクトリを作成する

# cd /var/www
# mkdir vhosts
# cd vhosts
# mkdir www.sitesname.jp
# cd ..
# chown -R daemon:daemon vhosts
# chmod 755 -R vhosts

Apacheの再起動

# /etc/init.d/apache2 restart

Apache2+PHP5+MySQLの導入(etch)

Apache2のインストール

# apt-get install apache2

PHP5のインストール

# apt-get install php5

php.iniの編集

デフォルトでは、

magic_quotes_gpc = On

になっているので、無効にする場合は
/etc/php5/apache2/php.ini を編集する。

; Magic quotes
;

; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = Off

MySQL5.0のインストール

# apt-get install mysql-server-5.0 php5-mysql

管理者ユーザの設定

mysql> GRANT ALL PRIVILEGES ON *.* TO admin@localhost IDENTIFIED BY 'パスワード' WITH GRANT OPTION;

※リモートアクセスを許可する場合は、「localhost」を「”%”」(または”ホスト名”)にする。

一般ユーザの設定

mysql> GRANT SELECT,UPDATE,INSERT,DELETE,ALTER,CREATE PRIVILEGES ON データベース名.* TO user1@localhost IDENTIFIED BY 'パスワード' WITH GRANT OPTION;

文字コードの設定

デフォルトでは「latin1」なってしまうので、my.cnfを編集してutf8に変更する。

# nano /etc/mysql/my.cnf

[mysqld]に以下2行を追加する

default-character-set=utf8
skip-character-set-client-handshake

[mysql]に以下1行を追加する

default-character-set=utf8

mysqlを再起動する。

# /etc/init.d/mysql restart

mysqlクライアントを起動し

mysql> status

で文字コードがutf8に設定されたことを確認できる。

文字コードはテーブル毎に設定することもできる。

下記のようにデータベースを作成すると、文字コードが指定できる。

mysql> create databaase データベース名 default character set utf8;

データベース指定で文字コードの確認は

mysql> show create database データベース名;

で可能。

phpadminのインストール

ダウンロードしたphpmyadminの圧縮ファイル(tar.gz)をwebの任意のディレクトリに配置する。
ファイルを解凍する。

# tar -zxvf phpMyAdmin-x.x.x-all-languages.tar.gz

解凍してできたディレクトリの名前を扱いやすい名前に変更する。

# mv phpMyAdmin-x.x.x phpmyadmin

ブラウザからアクセスする。

http://ホスト名/phpmyadmin/

mcryptの警告メッセージ

ログイン画面に「mcrypt 拡張をロードできません。PHP の設定を確認してください」というメッセージが表示された場合は、

# apt-get install php5-mcrypt

でphp5-mcryptをインストールする。
インストール後、apacheを再起動する。

# /etc/init.d/apache2 restart

再度ログイン画面を開くと、警告メッセージが消える。

MySQL ODBC接続設定

Debian(etch)は、デフォルトではデータベースにリモートで接続が出来ない。

有効にするには/etc/mysql/my.cnfを編集する。

bind-address = 127.0.0.1

# bind-address = 127.0.0.1

のように、コメントアウトする。

/etc/init.d/mysql restart

で再起動すると、TCP接続でポート3306にリモートアクセス可能になる。