apacheで.htaccessのphp_valueが使えない(問題提起編)
こんにちは。こんばんは。
にしやまです。
ここ2日程は仕事で本番サーバーの構築をしていたんですが、
できたーと思ってgit cloneしたら500エラーが起きてあわわわってなってます。
ので、経緯をメモとして残そうと思います。(まだ解決してない)
以下の環境で動かしています。
- CentOS8
- Apache2.4.37
- php7.3.15(cli)
ブラウザを見るとたしかにInternal Server Errorとでっかく書いてある。
なるほどね。ふむふむ。
で、apacheのエラーログを見ると
(省略)/.htaccess: Invalid command 'php_value', perhaps misspelled or defined by a module not included in the server configuration
と書いてあった。
該当の.htaccessはこんな感じです。
# Uncomment the following to prevent the httpoxy vulnerability # See: https://httpoxy.org/ #<IfModule mod_headers.c> # RequestHeader unset Proxy #</IfModule> # メモリ使用量の制限 php_value memory_limit -1 # POSTデータに許可される最大サイズ php_value post_max_size 1000M # 1つのファイルアップロードに許可される最大サイズ php_value upload_max_filesize 1000M <IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^(\.well-known/.*)$ $1 [L] Rewriterule ^phpmyadmin/.*$ - [PT] RewriteRule ^$ webroot/ [L] RewriteRule (.*) webroot/$1 [L] </IfModule>
ここのphp_valueが悪さしてるんですね。
ちなみにphp_valueを全部コメントアウトしたらシステムは表示されました。
全部お前のせいだ。
などと責めてもphp_valueちゃんは解決してくれないので、
Invalid command 'php_value'
とかで適当にググってみたところ、
「phpのモジュールの読み込みが出来ていないからphp_valueが使えないんじゃねーの?」
という記事が多かったので、ちゃんとモジュールが読まれているか確認。
/etc/httpd/conf/httpd.conf 59行目
Include conf.modules.d/*.conf
ここでconf.modules.d配下の.confをすべて読み込んでいる。 なるほど。この配下にphpぽいのがあったので見てみます。
cat /etc/httpd/conf.modules.d/15-php.conf
# # PHP is an HTML-embedded scripting language which attempts to make it # easy for developers to write dynamically generated webpages. # # Cannot load both php5 and php7 modules <IfModule !mod_php5.c> <IfModule prefork.c> LoadModule php7_module modules/libphp7.so </IfModule> </IfModule>
ここでphpのモジュールを読み込んでいるのか。
中身があるのがmodules/libphp7.so
とな
cat で中身を見たらバイナリファイルがばーーーーって出てきた(小並感)(小並感って初めて使った)
あれ、、phpのモジュールあんじゃんか、、?
ってところまでわかったのでこれから他の原因を探ります。。
俺たちの冒険はまだまだこれからだ!(未完)
2020/02/23追記
解決編です!
ついでに読んでってくださいなー