インストール順序があるらしい・・のか、php5を最初にインストールしようとしたら、解決できないものが多くて何度やっても入らなかった。
- mysql4
- apache2
- php5
の順序でインストールしたらうまくいった。
- #aptitude install mysql-server
- #apaitude install apahce2
- #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ディレクトリ変更など。
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_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に下記追加する。
SetHandler application/x-httpd-php
</FilesMatch>
site-avairable/sslにはデフォルトで以下が記述されている。
SSLOptions +StdEnvVars
</FilesMatch>
)
設定を変えたらapache2を再起動。
テストスクリプトの実行
phpのスクリプトは、<? ?>で囲んで書く。
<?
phpinfo();
?>ブラウザでアクセスしてPHPの情報が表示されたらOK。