■Apache+PHP(インストールと初期設定)
■Apache
 ●インストール
  # yum install -y httpd mod_ssl

 ●現在の状況の確認
  # /etc/init.d/httpd status
  ※停止中  httpd は停止しています
  ※起動中  httpd (pid  1535) を実行中...

 ●サービスの開始
  # /etc/init.d/httpd start

 ●ポートの確認
  # netstat -atn
  tcp        0      0 :::80                       :::*                        LISTEN
  ※80番ポートを使用しているので使用中(LISTEN)なら起動しているという事になる

 ●ファイヤーウォールを空けます
  # vi /etc/sysconfig/iptables
  以下の文を追加(80番ポートを空けます)
  -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

 ●ファイヤーウォールの変更を適用します。
  # /etc/init.d/iptables restart

 ●機械の起動時にサービスを自動起動する。
  # chkconfig httpd on

 ●初期設定
  ドキュメントルート
   /var/www/html/
   ※この中がルートの場所になります。

 ●コンテンツ作成用ユーザーの作成
  # useradd -d /var/www/html -u 400 -M webadmin
  ここではユーザーwebadminを作成します。

 ●ユーザー webadmin のパスワードを変更。
  # passwd webadmin
  ※ホームディレクトリをドキュメントルートにしますが、標準の/home
   でないとselinuxで都合が悪いのでUIDを400で作成します。

 ●作成用ユーザーにフォルダの所有者になってもらう
  # chown -R webadmin /var/www/html

 ●アップロードをsshで行うのでログインできるように設定を変更します。
  # vi /etc/ssh/sshd_config
  ※以下の文を追加します。
  AllowUsers admin postgres webadmin

 ●変更を有効にします。
  # service sshd reload

■PHP
 ●インストール
  ・本体
  # yum install -y php
  ・PostgreSQLを使用する為のパッケージをインストールします。
  # yum install -y php-pgsql
  ・マルチバイト文字列関数用のモジュールを追加します。
  # yum install -y php-mbstring

 ●初期設定
  ○SELinuxの設定
   ・設定確認
   # getsebool -a | grep httpd

   ・設定変更(この設定は結構時間がかかります。)
   # setsebool -P httpd_can_network_connect_db on
   この設定でデータベースにアクセス出来るようになります。

  ○PostgreSQLを使えるようにする為の設定
   ・pgsql.soの場所を確認します。
   # find / -name pgsql.so
   ↓出力結果
   /usr/lib/php/modules/pgsql.so

   ・php.iniにモジュールpgsql.soを設定する
   # vi /etc/php.ini
   インストール時元は;extension_dir = "./"となっており;はコメント化
   なので設定していません。以下2行を追加します。
   extension_dir="/usr/lib/php/modules"
   extension=pgsql.so
   ※もしパスの場所が違う(元から設定されていた場合)ならphp.iniで設定してあるパスへpgsql.soを移動する

  ○エラーを表示するようにする
   #  vi /etc/php.ini
   display_errors = On
   ※これでエラーが表示されるようになりますが、テスト環境であれば良いのですが
    実行環境でエラーが表示されると都合が悪いのでOffにしておいた方が良いです。
    テスト環境の場合はエラー表示をしておいた方が作りやすいです。

  ○インストール後はapachの再起動が必要です。
   #/etc/init.d/httpd stop
   #/etc/init.d/httpd start

トップへ戻る