このエントリーをはてなブックマークに追加
スポンサーリンク

CentOS6.3のインストール(2)

1 2 3

apache2.4のインストール

apache2.4をインストールする前に、まずは依存性を解決します。

aprのインストール
cd /usr/local/src/targz
wget http://ftp.kddilabs.jp/infosystems/apache/apr/apr-1.4.6.tar.gz
tar xvzf apr-1.4.6.tar.gz
cd apr-1.4.6
./configure
make
make install
cd ..

apr-utilのインストール
wget http://ftp.kddilabs.jp/infosystems/apache/apr/apr-util-1.4.1.tar.gz
tar xvzf apr-util-1.4.1.tar.gz
cd apr-util-1.4.1
./configure --with-apr=/usr/local/apr
make
make install

pcreのインストール
wget http://ftp.exim.llorien.org/pcre/pcre-7.8.tar.gz
tar xvzf pcre-7.8.tar.gz
cd pcre-7.8
./configure
make
make install

apache2.4.2のインストール
cd /usr/local/src/targz
wget http://ftp.riken.jp/net/apache/httpd/httpd-2.4.2.tar.gz
tar xvzf httpd-2.4.2.tar.gz
cd httpd-2.4.2
./configure --enable-modules=all --enable-ssl
make
make install

SSLキー作成
cd /usr/local/apache2/conf
mkdir sslkey
cd sslkey
openssl md5 /var/log/messages > rand.dat
openssl genrsa -rand rand.dat -des3 1024 > key.pem
(パスフレーズは123456)
cp key.pem key_in_pass.pem
openssl rsa -in key.pem -out key.pem
(パスフレーズは123456)
openssl req -new -days 365 -key key.pem -out csr.pem
(ここで全ての項目をエンターキーで送る)
openssl x509 -in csr.pem -out jiko_cert.pem -req -signkey key.pem -days 365

これはあくまで自己証明なので、公式なサイトではcsr.pemはちゃんと正確なユーザー情報を入れましょう。 また、IE11では自己証明では警告が表示されるだけでサイトを表示してくれません。今SSLを使うのであれば、きちんと証明機関に証明書を発行してもらってください。

あと、パスフレーズは私は面倒くさいので123456とした後、すぐに削除しちゃってますが、セキュリティーを気にするならapacheを起動する度に手動でパスフレーズを入れてください。ただ、休みの日にサーバーがリブートして、管理者が携帯で呼び出されてもいいんなら・・・。

ログディレクトリ作成と、ローテーションの設定
mkdir /var/log/apache
useradd apache
chown apache.apache /var/log/apache
vi /etc/logrotate.d/apache
/var/log/apache/*log {
        create 0644 apache apache
        missingok
        sharedscripts
        postrotate
                /bin/kill -HUP `cat /usr/local/apache2/logs/httpd.pid 2>/dev/null` 2> /dev/null || true
        endscript
}
ogrotate -d /etc/logrotate.conf
でエラーにならない事を確認する。

自動起動スクリプト作成
vi /etc/rc.d/init.d/apache
#!/bin/bash
#
#       /etc/rc.d/init.d/apache
#
# Starts the at daemon
#
# chkconfig: 345 95 5
# description: Runs commands scheduled by the at command at the time \
#    specified when at was run, and runs batch commands when the load \
#    average is low enough.
# processname: apache

# Source function library.
. /etc/init.d/functions

RETVAL=0

start() {
        echo "Starting apache..."
        /usr/local/apache2/bin/apachectl start
}

stop() {
        echo "Stopping apache..."
        /usr/local/apache2/bin/apachectl stop
}

restart() {
        echo "Restarting apache..."
        /usr/local/apache2/bin/apachectl restart
}

configtest() {
        /usr/local/apache2/bin/apachectl configtest
}


# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart|reload)
        restart
        ;;
  configtest)
        configtest
        ;;
  *)
        echo "Usage: apache {start|stop|restart|configtest}"
        exit 1
esac

exit $RETVAL
chmod 755 /etc/rc.d/init.d/apache
chkconfig apache on
/etc/rc.d/init.d/apache start

ここで、
ps ax | grep http
として、apacheが起動したかどうか確認しましょう。startして数秒間してから確認しないと常駐してないかもしれません。常駐してないようであれば、エラーログ(/var/log/apache/error.log)を確認しましょう。

apacheはバージョン2.2からはSSLを使う場合でもstartsslではなくstartで起動するようになったので、自動起動スクリプトにstartsslと書かないように注意しましょう。

チューニング
vi /usr/local/apache2/conf/httpd.conf
User apache
Group apache
ServerAdmin 管理者のメールアドレス
ServerName ホスト名

<IfModule mod_dir.c>
     DirectoryIndex index.php index.cgi index.html index.htm
</IfModule>
AddType application/x-httpd-php .php .html
ErrorLog /var/log/apache/error.log
CustomLog /var/log/apache/access.log combined
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>

▽以下はコメントアウトを解除
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule socache_dbm_module modules/mod_socache_dbm.so
LoadModule socache_memcache_module modules/mod_socache_memcache.so
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
Include conf/extra/httpd-vhosts.conf
これは、あとでPHPをインストールする場合の例です。拡張子.phpだけでなく.htmlもPHPスクリプトとして認識させます。当然、PHPがインストールされてないとエラーでapacheが起動しないので、この設定をしたらPHPをインストールしましょう。

vi /usr/local/apache2/conf/extra/httpd-ssl.conf
SSLCertificateFile /usr/local/apache2/conf/sslkey/jiko_cert.pem
SSLCertificateKeyFile /usr/local/apache2/conf/sslkey/key.pem
ServerAdmin 管理者のメールアドレス
ServerName ホスト名
ErrorLog /var/log/apache/ssl-error.log
TransferLog /var/log/apache/ssl-access.log
CustomLog /var/log/apache/ssl_request_log \
ここで、jiko_cert.pemというのはあくまで自己証明です。正式な証明書を使うサイトでは、当然ですがちゃんとベリサインとかに発行してもらった証明書を入れましょう。

また、ベリサインでは中間証明が必要になる場合があります。この場合、ベリサインのサイトから中間証明書をコピペした後、
SSLCertificateChainFile 
に続いて中間証明のファイルの入ったパスを書いてください。

vi /usr/local/apache2/conf/extra/httpd-vhosts.conf
最初から書いてあるバーチャルホストの設定は全てコメントアウト。
最後の行に
Include virtconf.d/*.conf
cd /usr/local/apache2
mkdir virtconf.d
cd virtconf.d
vi そのサーバーのIPアドレス.conf
<VirtualHost *:80>
  ServerName (そのサーバーのIP)
  DocumentRoot (ドキュメントルート)
  CustomLog /var/log/apache/access.log combined
  ErrorLog /var/log/apache/error.log
</VirtualHost>
ここで、アクセスログをバーチャルホスト毎に別々にしたい時は、access.logやerror.logの部分を書き換えてください。

この後、apacheを再起動、といきたい所ですが、まだPHPを入れてないのでエラーになってしまうので、以下のPostgreSQL、PHPのインストール後に行ってください。

パスを通す
vi /etc/profile.d/apache.sh
PATH="$PATH":/usr/local/apache2/bin
ただし、/etc/profile.dに記述したスクリプトはログイン時に有効になるので、いったんtelnetを抜けて入り直します。

PostgreSQL

cd /usr/local/src/targz
wget ftp://ftp2.jp.postgresql.org/pub/postgresql/source/v9.1.4/postgresql-9.1.4.tar.gz
tar xvzf postgresql-9.1.4.tar.gz
cd postgresql-9.1.4
./configure
make
make install

データーベース初期化
useradd postgres
chmod 777 /usr/local/pgsql
su - postgres
/usr/local/pgsql/bin/initdb --encoding=EUC_JP --no-locale -D /usr/local/pgsql/data
exit
chmod 755 /usr/local/pgsql

ログのローテーションの設定
mkdir /var/log/pgsql
chown postgres.postgres /var/log/pgsql

vi /etc/logrotate.d/postgres
/var/log/pgsql/*log {
    create 0644 postgres postgres
    missingok
    sharedscripts
    postrotate
        /bin/kill -HUP `head -1 /usr/local/pgsql/data/postmaster.pid  2> /dev/null` 2> /dev/null || true
    endscript
}
この後、
logrotate -d /etc/logrotate.conf
で、エラーが出ない事を確認する。

自動起動スクリプトの作成
vi /etc/rc.d/init.d/postgresql
#!/bin/bash
#
#       /etc/rc.d/init.d/postgres
#
# Starts the at daemon
#
# chkconfig: 345 95 5
# description: Runs commands scheduled by the at command at the time \
#    specified when at was run, and runs batch commands when the load \
#    average is low enough.
# processname: postgres

# Source function library.
. /etc/init.d/functions

RETVAL=0

start() {
        echo "Starting PostgreSQL"
        /bin/su - postgres -c "/usr/local/pgsql/bin/pg_ctl \
        -D /usr/local/pgsql/data -l /var/log/pgsql/postgres.log start"
}

stop() {
        echo "Stopping PostgreSQL"
        /bin/su - postgres -c "/usr/local/pgsql/bin/pg_ctl \
        -D /usr/local/pgsql/data -m fast stop"
}

restart() {
        echo "Restarting PostgreSQL"
        /bin/su - postgres -c "/usr/local/pgsql/bin/pg_ctl \
        -D /usr/local/pgsql/data -m fast restart"
}

# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart|reload)
        restart
        ;;
  *)
        echo "Usage: postgres {start|stop|restart|reload}"
        exit 1
esac

exit $RETVAL
chmod 755 /etc/rc.d/init.d/postgresql
chkconfig postgresql on
/etc/rc.d/init.d/postgresql start

ps ax | grep postgres
でpostgresが常駐しているか確認する。もしpostgresが常駐してないようなら、ログを見て問題を修正する
cat /var/log/pgsql/postgres.log

パスを通す
PostgreSQL関係のコマンド(psqlやpg_dumpやvacuumdbなど)をフルパスで入力しなくても良いように、パスを通しておきます。
vi /etc/profile.d/postgresql.sh
export POSTGRES_HOME=/usr/local/pgsql
export PGLIB=$POSTGRES_HOME/lib
export PGDATA=$POSTGRES_HOME/data
export MANPATH="$MANPATH":$POSTGRES_HOME/man
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PGLIB"
PATH="$PATH":/usr/local/pgsql/bin
ただし、/etc/profile.dに記載したスクリプトはログイン時に有効になるので、いったんtelnetを抜けて入りなおします。入りなおしたら、
psql -U postgres -l
としてパスが通っている事を確認します。

また、.soファイルの場所をシステムに記憶させます。そうしないと、DBD::Pg等でエラーが出る場合があります。

vi /etc/ld.so.conf.d/postgres.conf
/usr/local/pgsql/lib
ldconfig
チューニング
vi /usr/local/pgsql/data/postgresql.conf
listen_addresses = '*'
work_mem = 4MB
maintenance_work_mem = 20MB
effective_cache_size = 200MB
log_connections = off
log_duration  = off
log_statement = 'none'
default_with_oids = on
standard_conforming_strings = off
backslash_quote = on
escape_string_warning = off
listen_addresses = '*'
は、接続を受け付けるIPアドレスを指定します。ここで、'*'は「全てのIPアドレスからの接続を受け入れる」という意味なので、別途IPTABLESで5432ポートへの接続を制限しないと、 データーベースの中身がだだ漏れになるので注意が必要です。

work_mem = 4MB
maintenance_work_mem = 20MB
effective_cache_size = 200MB
は、いずれもPostgreSQLを実行させるのにどれぐらいのメモリーを使うかを指定しています。 データーベースサーバーにはできるだけ大量のメモリーを搭載した上で、 この値を大きくすればそれだけパフォーマンスが良くなります。 ただし、大きくしすぎるとPostgreSQL自体が動かなかったり、サーバーのスワップが頻繁になりすぎて、かえって遅くなります。

log_connections = off
log_duration = off
log_statement = 'none'
は、ログに端末情報、かかった時間、SQLステートメントを残すかどうかを設定します。この場合はいずれもオフやnoneにしています。巨大サイトではログを残しすぎると2GBを超えて止まってしまうのでオフにしていますが、デバッグ中や開発サーバーではオンにしておくと都合が良いでしょう。

default_with_oids = on
は、各行にオブジェクトID(oid)をつけるかどうか。大抵はオフで良いのですが、過去に作られたソースを流用するのであればonにしておきます。これから作るプログラムでは、oidに頼らず別途serial型のフィールドをつける等してoidに頼らないような設計にしましょう。

backslash_quote = on
は、シングルクォート'を\でエスケープできるかどうかの設定です。PostgreSQLでは'を''とエスケープしなければならないのですが、以前のバージョンでは\'というふうに\でもエスケープする事が認められていたので、古いソースを流用するのであればonにしておきます。

standard_conforming_strings = off
は、\を単なる文字として扱うか、エスケープとして扱うか。onなら単なる文字、offならエスケープとして扱います。

escape_string_warning = off
は、\をエスケープとして使おうとしている(\\や\'など)場合に警告を発するかどうか。古いソースの中にある\をエスケープとして使う箇所を発見するのに役立ちます。onで警告を発するようになりますが、古いソースを直さずにそのまま流用するのであればoffにします。

PostgreSQLの再起動
/etc/rc.d/init.d/postgresql stop
/etc/rc.d/init.d/postgresql start

自動起動の設定
chkconfig postgresql on

動作確認
head -1 /usr/local/pgsql/data/postmaster.pid
psql -U postgres -l

ワークメモリーが多すぎたり、設定ファイルの記載ミスがあると再起動時にエラーになるので、その場合はログを見てエラー箇所を修正します。

GD

PNGライブラリのインストール
cd /usr/local/src
wget http://files.directadmin.com/services/custombuild/libpng-1.2.8-config.tar.gz
tar xvzf libpng-1.2.8-config.tar.gz
cd libpng-1.2.8-config
./configure
make
make install

JPEGライブラリのインストール
32ビットシステムの場合
cd /usr/local/src
wget http://files.directadmin.com/services/custombuild/jpegsrc.v6b.tar.gz
tar -zxvf jpegsrc.v6b.tar.gz
cd jpeg-6b/
./configure --enable-shared
make
mkdir /usr/local/include
mkdir /usr/local/man/man1/
make install

64ビットシステムの場合
cd /usr/local/src
wget http://www.imagemagick.org/download/delegates/jpegsrc.v8b.tar.gz
tar -zxvf jpegsrc.v8b.tar.gz
cd jpeg-8b/
./configure --enable-shared
make
make install

freetype2のインストール
cd /usr/local/src
wget http://www.pd-admin.de/download/src/freetype-2.1.8.tar.gz
tar xvzf freetype-2.1.8.tar.gz
cd freetype-2.1.8
./configure --enable-static
make
make install

expatのインストール
cd /usr/local/src
wget http://pkgs.fedoraproject.org/repo/pkgs/expat/expat-2.0.1.tar.gz
tar xvzf expat-2.0.1.tar.gz
cd expat-2.0.1
./configure
make
make install

Fontconfigのインストール
cd /usr/local/src/RPMS
wget ftp://fr2.rpmfind.net/linux/centos/6.3/os/x86_64/Packages/expat-devel-2.0.1-11.el6_2.x86_64.rpm
rpm -ivh expat-devel-2.0.1-11.el6_2.x86_64.rpm
cd /usr/local/src
wget http://freedesktop.org/software/fontconfig/release/fontconfig-2.2.3.tar.gz
tar xvzf fontconfig-2.2.3.tar.gz
cd fontconfig-2.2.3
./configure
make
make install

gd2.0のインストール
cd /usr/local/src
wget http://ring.u-toyama.ac.jp/archives/graphics/gd/oldreleases/gd-2.0.33.tar.gz
tar xvzf gd-2.0.33.tar.gz
cd gd-2.0.33
./configure \
--prefix=/usr/local \
--with-png=/usr/local \
--with-freetype=/usr/local \
--with-fontconfig=/usr/local \
--with-jpeg=/usr/local

Support for PNG library: yes
Support for JPEG library: yes
Support for Freetype 2.x library: yes
Support for Fontconfig library: yes
Support for Xpm library: no

XpmはGUI環境が整ってないとインストールできないので、CUIで使っているサーバーではnoのままで構いません。その他の項目はPHPで画像を処理する場合や、画像に文字を入れたい場合に使いますので、yesになるように事前にライブラリを入れておきました。
make
make install

その後、.soファイルの場所をシステムに記憶させます。でないと、GD::Barcode等でエラーが出る場合があります。

vi /etc/ld.so.conf.d/gd.conf
/usr/local/lib
ldconfig

PHP

libxsltとlibcryptのインストール
libxsltとlibcryptのdevelパッケージを入れてないと./configureでエラーになってしまうので、前もって入れておきます。DVDからCentOSをインストールする際にインストールするように指定していた場合は不要です。
wget ftp://rpmfind.net/linux/centos/6.3/os/x86_64/Packages/libxslt-1.1.26-2.el6.x86_64.rpm
wget ftp://rpmfind.net/linux/centos/6.3/os/x86_64/Packages/libxslt-devel-1.1.26-2.el6.x86_64.rpm
rpm -ivh libxslt-1.1.26-2.el6.x86_64.rpm libxslt-devel-1.1.26-2.el6.x86_64.rpm

wget ftp://rpmfind.net/linux/centos/6.3/os/x86_64/Packages/libgcrypt-1.4.5-9.el6_2.2.x86_64.rpm
wget ftp://rpmfind.net/linux/centos/6.3/os/x86_64/Packages/libgcrypt-devel-1.4.5-9.el6_2.2.x86_64.rpm
rpm -ivh libgcrypt-1.4.5-9.el6_2.2.x86_64.rpm libgcrypt-devel-1.4.5-9.el6_2.2.x86_64.rpm

db4のインストール
32ビットシステムの場合rpmからdb4、db4-develをインストールすれば良いのですが、64ビットシステムの場合phpのconfigureスクリプトが/lib64からライブラリを探してくれないので、ソースからコンパイルしてインストールします。
cd /usr/local/src/targz
wget http://pkgs.fedoraproject.org/repo/pkgs/db4/db-4.7.25.tar.gz/ec2b87e833779681a0c3a814aa71359e/db-4.7.25.tar.gz
tar xvzf db-4.7.25.tar.gz
cd db-4.7.25
cd build_unix
../dist/configure --prefix=/usr
make
make install

※ここを参考にしました
http://www.kozupon.com/db/db2.html

openldapのインストール
32ビットシステムの場合rpmからopenldap、openldap-develをインストールすれば良いのですが、64ビットシステムの場合phpのconfigureスクリプトが/lib64からライブラリを探してくれないので、ソースからコンパイルしてインストールします。
cd /usr/local/src/targz
wget http://www.openldap.org/software/download/OpenLDAP/openldap-release/openldap-2.4.23.tgz
tar xvzf openldap-2.4.23.tgz
cd openldap-2.4.23
./configure --prefix=/usr --enable-ldbm
make depend
make
make install

※ここを参考にしました
http://www015.upp.so-net.ne.jp/unixlife/practical/openldap-install.html

phpのインストール
wget http://ftp.wayne.edu/php/php-5.4.5.tar.gz
tar xvzf php-5.4.5.tar.gz
cd php-5.4.5
vi mkphpconf
32ビットシステムの場合
./configure                                      \
--with-config-file-path=/etc                     \
--enable-gd-native-ttf                           \
--with-openssl                                   \
--with-zlib                                      \
--enable-exif                                    \
--enable-ftp                                     \
--enable-magic-quotes                            \
--enable-sockets                                 \
--enable-sysvsem                                 \
--enable-sysvshm                                 \
--enable-sysvmsg                                 \
--enable-wddx                                    \
--with-kerberos                                  \
--enable-ucd-snmp-hack                           \
--enable-shmop                                   \
--enable-calendar                                \
--with-libxml-dir=/usr                           \
--with-apxs2=/usr/local/apache2/bin/apxs         \
--with-gd                                        \
--with-pgsql=/usr/local/pgsql                    \
--with-regex=php                                 \
--enable-zend-multibyte                          \
--disable-debug                                  \
--with-layout=GNU                                \
--with-pear=/usr/share/php                       \
--enable-bcmath                                  \
--with-bz2                                       \
--enable-ctype                                   \
--with-db4                                       \
--with-iconv                                     \
--with-gettext                                   \
--enable-mbstring                                \
--with-pcre-regex                                \
--with-libexpat-dir=/usr/local/apr               \
--with-xmlrpc                                    \
--with-pgsql                                     \
--with-mime-magic=/usr/share/magic.mime          \
--with-exec-dir=/usr/lib/php4/libexec            \
--enable-shared                                  \
--enable-static                                  \
--with-zlib-dir=/usr                             \
--with-jpeg-dir=shared,/usr                      \
--with-png-dir=shared,/usr                       \
--with-freetype-dir=shared,/usr                  \
--with-ldap=shared,/usr                          \
--with-xsl                                       \
--with-ttf=shared                                \
--enable-soap
64ビットシステムの場合
./configure                                      \
--with-config-file-path=/etc                     \
--enable-gd-native-ttf                           \
--with-openssl                                   \
--with-zlib                                      \
--enable-exif                                    \
--enable-ftp                                     \
--enable-sockets                                 \
--enable-sysvsem                                 \
--enable-sysvshm                                 \
--enable-sysvmsg                                 \
--enable-wddx                                    \
--with-kerberos                                  \
--enable-shmop                                   \
--enable-calendar                                \
--with-libxml-dir=/usr                           \
--with-apxs2=/usr/local/apache2/bin/apxs         \
--with-gd                                        \
--with-pgsql=/usr/local/pgsql                    \
--with-regex=php                                 \
--disable-debug                                  \
--with-layout=GNU                                \
--with-pear=/usr/share/php                       \
--enable-bcmath                                  \
--with-bz2                                       \
--enable-ctype                                   \
--with-iconv                                     \
--with-gettext                                   \
--enable-mbstring                                \
--with-pcre-regex                                \
--with-libexpat-dir=/usr/local/apr               \
--with-xmlrpc                                    \
--with-pgsql                                     \
--enable-shared                                  \
--enable-static                                  \
--with-zlib-dir=/usr                             \
--with-jpeg-dir=shared,/usr                      \
--with-png-dir=shared,/usr                       \
--with-freetype-dir=shared,/usr                  \
--with-ldap=shared,/usr                          \
--with-db4=shared,/usr                           \
--with-xsl                                       \
--enable-soap
従来あった
--enable-magic-quotes
--enable-ucd-snmp-hack
--enable-zend-multibyte
--with-mime-magic
--with-exec-dir
--with-ttf
は廃止されたので、現バージョンでは指定できません。--enable-magic-quotesが廃止されたため、従来のマジッククォートされている事を前提としたソースが動かないので、そういう場合は修正が必要になります。 具体的には、SQL文を生成する際に、insertやupdateする文字列中にある'を''にする処理を追加する必要があります。そのためには、pg_escape_string関数等を利用します。 PostgreSQLではbackslash_quote= onは廃止する方向なので、PHPのaddslashes関数は使わないようにしましょう。

--with-libexpat-dir=/usr/local/apr
apacheをインストールする時に先だってapr-1.4.6.tar.gzをインストールしている事を前提としています。

--with-ldap=shared,/usr
--with-db4=shared,/usr
これらは64ビットシステムではconfigureスクリプトが/lib64からライブラリを探してくれずエラーになってしまうので、別途ソースからコンパイル・インストールして、インストールしたディレクトリを指定する必要があります。ここでは、--with-ldap=shared,/usrと、--with-db4=shared,/usrを指定しています。

chmod 755 mkphpconf
./mkphpconf
make
make install
コンパイルが通ったらphp.iniをコピーします。
cp php.ini-development /etc/php.ini

チューニング
vi /etc/php.ini
display_errors = On
log_errors = On
html_errors = Off
error_log = /var/log/apache/php-error.log
file_uploads = On
session.auto_start = 1
session.gc_maxlifetime = 3600
session.use_trans_sid = 1
session.cache_limiter = private, must-revalidate
upload_max_filesize = 100M
memory_limit = 128M
post_max_size = 200M
date.timezone = Asia/Tokyo
mbstring.http_output = SJIS-win
mbstring.internal_encoding = SJIS-win
short_open_tag = On
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
upload_max_filesize = 100M
post_max_size = 200M
今時デフォルトのアップロードのサイズ2Mではほとんど何もアップできない(大げさ?)でしょうから、ここは100Mぐらいんにしておきます。同時にPOSTできるサイズも増やしておきます。これはアップロードできるサイズより大きくしないと、アップロードはできてもその他の情報(hiddenタグの情報など)が途中切れになってしまいます。

date.timezone = Asia/Tokyo
PHP5.1から追加された設定で、この設定をしていないとdate()関数を使った時にタイムゾーンが設定されていないというエラーが出ます。古いスクリプトを流用する場合はこの設定を入れます。これから作る新しいスクリプトではdate()関数にタイムゾーンを指定してください。

mbstring.http_output = SJIS-win
mbstring.internal_encoding = SJIS-win
大抵はSJISだけで良いのですが、携帯サイトを作る場合にドコモの絵文字にも対応させたいので、SJIS-winとします。

※2015.9.20追記 この記事はガラケー全盛期に書いたものですので、今の時代(2015年)にスマホ対応サイト(ガラケー非対応)を作るのであれば、UTF-8と設定した上で、サイトはUTF-8で作成する方が良いかと思われます。ちなみに、このサイトは全てSJISで記述しています。

short_open_tag = On
<?をPHPスクリプトの開始と認識させます。 この設定をすると、<?xmlという行が全てエラーになってしまうので、<?xmlという行はechoやprint文で出力させます。 これから作る新しいスクリプトでは<?phpと書くようにしましょう。

※2015.9.20追記 PHP5.4以降では、short_open_tagの設定は廃止され、常時onとみなされるようになりました。 そのかわり、<?xmlと書いてある場合はphpとはみなされずにエラーにならなくなりました。 要するに、<?xmlさえエラーにならなければ、なにもショートタグ全てを受け付けないようにする必要もなかろう、という事なのでしょう。

ここを参考にしました。
http://www.coalice.info/blog/programming/php/920.html

error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
split関数を使っても非推奨エラーが出ないようにします。古いスクリプトを流用する場合はこの設定を入れます。これから作る新しいスクリプトでは、explodeやpreg_splitを使うようにしてください。

register_globals =
ありません。 PHP 5.4.0 で削除されました。したがって、古いスクリプトを流用する場合、スクリプトの頭でextract("$_GET")やextract("$_PUT")を使って配列を展開する必要があります。

/etc/rc.d/init.d/apache configtest
エラーがなければ
/etc/rc.d/init.d/apache stop
/etc/rc.d/init.d/apache start
1 2 3
スポンサーリンク