🦔
TermuxでPHP
上記の記事の詳細記事です。
php関連のインストール
~ $ pkg install nginx php-fpm
nginxは有名なWebサーバーです。
php-fpmはPHPにおけるFastCGI実装です。Termuxのパッケージとしては、一緒にphpも入ります。
nginxの設定
まずはnginxがphp-fpmを呼べるように設定します。
$PREFIX/etc/nginx/nginx.conf
server_name localhost;
という部分を以下のように変えます。
$PREFIX/etc/nginx/nginx.conf
server_name localhost;
# 追加
root /data/data/com.termux/files/usr/share/nginx/html;
サーバーのデフォルトのドキュメント格納場所を
$PREFIX/share/nginx/html
に設定しています。
さらに以下の部分を
$PREFIX/etc/nginx/nginx.conf
location / {
root /data/data/com.termux/files/usr/share/nginx/html;
index index.html index.htm;
}
という部分を以下のように変えます。
$PREFIX/etc/nginx/nginx.conf
location / {
#root /data/data/com.termux/files/usr/share/nginx/html;
#index index.html index.htm;
index index.html index.htm index.php;
}
/で終わるURLで/index.phpも見に行くようになります。
さらに以下の部分を
$PREFIX/etc/nginx/nginx.conf
location = /50x.html {
root /data/data/com.termux/files/usr/share/nginx/html;
}
という部分を以下のように変えます。
$PREFIX/etc/nginx/nginx.conf
location = /50x.html {
#root /data/data/com.termux/files/usr/share/nginx/html;
}
rootの設定を統一するためにコメントにしています。
さらに以下の部分を
$PREFIX/etc/nginx/nginx.conf
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
以下のように変えます。
$PREFIX/etc/nginx/nginx.conf
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
location ~ \.php$ {
fastcgi_pass unix:/data/data/com.termux/files/usr/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
これが受け渡しの設定です。このphp-fpmはUnixドメインソケットで動いてるので、そちらに必要なパラメータを渡す設定になります。
PHP(web)を動かす
両サービスを(手動)起動するだけです。
nginxは拡張子が.phpのファイルの場合、php-fpmに処理を任せます。
~ $ nginx
~ $ php-fpm
どちらもバックグラウンドで動くので、これで起動完了です。
nginx動作確認
ブラウザから http://localhost:8080/ を開けばnginxの動作確認ができます。
php-fpm動作確認
$PREFIX/share/nginx/html/info.php を以下の内容で作成します。
$PREFIX/share/nginx/html/info.php
<?php
phpinfo();
?>
ブラウザから http://localhost:8080/info.php を開けばphp-fpmとphpの動作確認ができます。
PHP(web)を停止する
~ $ pkill nginx
~ $ pkill php-fpm
Discussion