Sunday, July 4, 2010

php5+mysql4のインストール

インストール順序があるらしい・・のか、php5を最初にインストールしようとしたら、解決できないものが多くて何度やっても入らなかった。

  1. mysql4
  2. apache2
  3. php5

の順序でインストールしたらうまくいった。

  1. #aptitude install mysql-server
  2. #apaitude install apahce2
  3. #aptitude install php5

sources.listにはjaistを設定して、特に躓くこともなくインストール完了。sslを使うときは更にopensslをインストールする。

#aptitude install oepnssl

apache2の設定と起動

編集するファイルは、/etc/apache2/以下で、

  • site-avairable/default
  • site-avairable/ssl (copy from default-ssl)

/etc/apache2/site-avairalbe/default を編集。ちなみに似たような名前のsite-enabledはavarirableのシンボリックリンクになっている。
編集内容はwwwのディレクトリの変更とcgi-binディレクトリ変更など。

<VirtualHost *:80>
        ServerAdmin MAILADDRESS ←★
        DocumentRoot /mnt/share/www/  ←★
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /mnt/share/www/>  ←★
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /mnt/share/www/cgi-bin/  ←★
        <Directory "/mnt/share/www/cgi-bin">  ←★
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog /var/log/apache2/error.log

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

        CustomLog /var/log/apache2/access.log combined

#    Alias /doc/ "/usr/share/doc/"    ←★ここから</Directory>までコメントアウト
#    <Directory "/usr/share/doc/">
#        Options Indexes MultiViews FollowSymLinks
#        AllowOverride None
#        Order deny,allow
#        Deny from all
#        Allow from 127.0.0.0/255.0.0.0 ::1/128
#    </Directory>

Option Indexes を設定すると、そのディレクトリにアクセスした時ファイル一覧が見える。sslも使いたいので

#cp default-ssl ssl

としてオリジナルを残してからsslを編集。

sslのモジュールを有効にして、

#a2enmod ssl

これのみだと以下のようなエラーが出る。

SSL received a record that exceeded the maximum permissible length.

(エラーコード: ssl_error_rx_record_too_long)

sslの設定も有効にして、apache2を再起動。

#apache2ctl restart

個人で使う以外の運用は考えていないので証明書は設定しない。

php5の設定

場所は/etc/php5/apache2/php.ini 。文字コードの設定などを行う。特に何もしなくても実行出来るので割愛。

必要ならapacheでphpモジュールを有効にする。

#a2enmod php5

通常はこれだけで、phtml,phpという拡張子のファイルからphpが実行できる。(.htmlでは実行できない)

cgiと同じく実行ディレクトリを制限したい場合は、CGI版を使うらしい。(参考:aki-web PHP質問用BBS

(次のテストスクリプトを実行できず、必要であれば拡張子PHPのファイルをPHPだと認識させるため、site-avairable/defaultに下記追加する。

<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

site-avairable/sslにはデフォルトで以下が記述されている。

<FilesMatch "\.(cgi|shtml|phtml|php)$">
               SSLOptions +StdEnvVars
       </FilesMatch>

設定を変えたらapache2を再起動。

テストスクリプトの実行

phpのスクリプトは、<?  ?>で囲んで書く。

#cat /mnt/share/www/test.php

<?

phpinfo();

?>

ブラウザでアクセスしてPHPの情報が表示されたらOK。

Hatena タグ: ,,,