NginxとDockerでWordPressを動かす手順とハマりどころ解説
13:12
WordPressをDockerで立ち上げるとき、多くの人は公式のwordpressイメージを使います。
しかし、そのままではApacheとNginxの競合が発生し、思ったように動かないことがあります。この記事では、私が実際に失敗した例と、その解決方法をまとめます。
NginxとWordPressのインストールは以下の通りです。
    【IT】Ubuntu Desktop 20.04 LTSにWordPressをインストールする
  
    【IT】Ubuntu Desktop 20.04 LTS にNginxをインストールする
  
原因
WordPressのDockerにApacheが設定されていたため80番ボートがつかわれていました。DockerのWordPressはPortが重複したため起動できませんでした。
対応方法
WordPressのfpm版のDockerに変更しました。fpm ( FastCGI Process Manager ) は PHP の FastCGI という技術です。
Volume用フォルダ作成
ホスト側にVolume用のフォルダを作成します。
    
# mkdir /var/www/html
  
Dockerコマンド
Dockerコマンドは以下の通りです。
    
# docker run -d --network host --name wordpress  -v /var/www/html:/var/www/html -e "WORDPRESS_DB_HOST=127.0.0.1" -e "WORDPRESS_DB_USER=wp" -e "WORDPRESS_DB_PASSWORD=wppassword" -e "WORDPRESS_DB_NAME=wordpress" wordpress:php7.4-fpm
  
前回と異なる点としてVolumeを指定しています。またImageファイルは「wordpress:php7.4-fpm」を使います。
Nginx設定ファイル変更
Nginxの設定ファイルの場所は以下の通りです。
/etx/nginx/nginx.conf
Nginxの設定ファイルを変更します。
    
    server {
        listen       80;
        server_name  192.168.0.19;
        root   /var/www/html;
        index  index.html index.htm index.php;
        location / {
            try_files $uri $uri/ /index.php$is_args$args;
        }
        location ~\.php$ {
            root           /var/www/html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
  
ファイルを変更したらNginxを再起動します。
コマンドは以下の通りです。
    
# service nginx restart
  
これでNginxとWordPressの連携ができます。
0 件のコメント:
コメントを投稿
コメントをお待ちしています。