Apache2+PHP-FPMでmod_rewriteが動作しない!?

PHPバージョン毎にローカルのPHP開発環境を作るのは面倒だなと思っていました。ふと「あ!モジュールでなくてCGIにすれば、複数バージョン動かせるじゃん!」と今さらながら思い出し、Vagrantで作ってあるUbuntuに環境を構築しました。

早速インストール開始。aptのレポジトリを追加して、PHP-FPMバージョン毎にインストールします。

add-apt-repository ppa:ondrej/phpsudo apt update -y
sudo apt install php5.X php5.X-fpm -y
sudo apt install php7.X php7.X-fpm -y
.
.
  • Apache側はバーチャルホストにします。
  • バージョン毎の環境が分かり易いようにPHP7X-appなどのフォルダを作っておきます。
  • PHP7X-appなどのフォルダ内にそれぞれのアプリを格納します。
  • それぞれのアプリに対してバーチャルホスト用のconfを作ります。

バーチャルホスト用のconf作成+Apache2再起動でOK!

  1. /etc/apache2/sites-available でXXX.confを作成
  2. a2ensite XXXX.conf で有効化
  3. systemctl restart apache2

confはこんな感じ。

ServerName my.local
DocumentRoot /var/www/php73-app/my.local
<Directory /var/www/my.local>
  Options Indexes FollowSymLinks
  AllowOverride All
  Require all granted
  DirectoryIndex index.php index.html
  RewriteEngine On
</Directory>
<FilesMatch \.php$>
  # Apache 2.4.10+ can proxy to unix socket
  SetHandler "proxy:unix:/var/run/php/php7.3-fpm.sock|fcgi://localhost"
</FilesMatch>

ところがところが、WordPressのカスタマイズのパーマリンクが表示できない。
「mod_rewriteが無効になっていたか!?」と、a2enmod してみても変わらない。
困ったときには、ググるカス!

そのものずばりで「Apache mod_rewrite rules don’t work with dynamic virtual host and php-fpm」とGoogle先生に聞いたら、ありました!!!が、記載内容は自分と同じ・・・。

Ansewrを見ていったら↓これが・・・。

Check your apache config file and enable rewrite for all.
Open terminal and write: nano /etc/apache2/apache2.conf
Find these lines and write exactly this code :

大元のconfで

AllowOverride All

していなかった!!!!ボーンヘッドでした。

変更してApache再起動して、めでたくパーマリンク表示ができました。

WordPressやMT、PHPなどのコーディングが仕事の中年おじさんです。 趣味でバンド(ギター&ボーカル)もやっていて、海外ドラマ(特にSFモノ)が大好きです。 いろいろまとめておくためにブログを立ち上げまっす!MASU!。

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA