Category Archives: WordPress

WordPress + SQLite3 + Docker で1分もかけずにブログを作る

最近、Dockerイメージの作成がマイブームかも知れません。
今回はイメージさえあればWordPressを1分もかけずに構築できるイメージを作成してみました。

# vi Dockerfile

FROM centos:7

# 必要なパッケージをインストール
RUN yum -y update
RUN yum -y install httpd httpd-devel zip unzip tar wget
RUN yum -y install php php-xml php-pdo php-gd php-mbstring sqlite sqlite-devel

# WordPressをインストールしてSQLite3で動作するように設定
RUN wget https://ja.wordpress.org/latest-ja.tar.gz
RUN wget https://downloads.wordpress.org/plugin/sqlite-integration.1.8.1.zip
RUN tar xvfz ./latest-ja.tar.gz
RUN unzip ./sqlite-integration.1.8.1.zip
RUN rm -f ./latest-ja.tar.gz
RUN rm -f ./sqlite-integration.1.8.1.zip
RUN mv wordpress /var/lib/wordpress
RUN chown -R apache.apache /var/lib/wordpress
RUN mv /var/lib/wordpress/wp-config-sample.php /var/lib/wordpress/wp-config.php
RUN mv sqlite-integration /var/lib/wordpress/wp-content/plugins/
RUN mv /var/lib/wordpress/wp-content/plugins/sqlite-integration/db.php \
       /var/lib/wordpress/wp-content/

# ひな形を公開ディレクトリにコピーする
RUN cp -rpf /var/lib/wordpress/* /var/www/html/

# ログイン時にひな形から展開するように定義する
RUN echo "yes n | cp -ripf /var/lib/wordpress/* /var/www/html/ > /dev/null 2>&1" >> /root/.bash_profile

EXPOSE 80
VOLUME /var/www/html

RUN systemctl enable httpd

EXPOSE 80

# docker run --privileged -itd -p 8080:80 -v /root/wordpress/public_html:/var/www/html wordpress-sqlite bash -l -c "/sbin/init"

ブログの実態はホスト側で持つので保管先のディレクトリを作成
# mkdir -p /root/wordpress/public_html
# chmod 777 /root/wordpress/public_html

コンテナ起動
# docker run –privileged -itd -p 8080:80 -v /root/wordpress/public_html:/var/www/html wordpress-sqlite bash -l -c “/sbin/init”

ブラウザで http://127.0.0.1:8080 にアクセスしてWordPressのインストール画面が表示されれば成功です。

MySQLのコンテナを作成してDBとユーザを作ってボーリュームの指定をして・・・
というのが面倒だったので小規模ならSQLite3でもいいでしょ?っというノリで作ってみました。

Apacheを使いましたが、よくよく考えて見ればNginxでも良かったなと失敗した感が・・・。
そのうち、Nginxとphp-fpmとSQLite3を組み合わせたDockerイメージを作成してみたいと思います。

CentOS5.7 Apache2 DOS攻撃対策

DOS攻撃の対策モジュールを変更したのをメモするのを忘れていたのでメモしておきます。

旧記事
Dosアタック対策 Apache2 Vine Linux

# wget http://ncu.dl.sourceforge.net/sourceforge/moddosdetector/mod_dosdetector-0.2.tar.gz
# tar xvzf mod_dosdetector-0.2.tar.gz
# cd mod_dosdetector-0.2
# make
# make install

# vi /etc/httpd/conf.d/dos_attack.conf

RewriteEngine On
RewriteCond %{ENV:SuspectHardDoS} =1
RewriteRule .*  - [R=503,L]
ErrorDocument 503 "Server is busy."

AddType image/vnd.microsoft.icon .ico

DoSDetection On
DoSPeriod 60
DoSThreshold 70
DoSHardThreshold 90
DoSBanPeriod 7200
DoSTableSize 500
DoSIgnoreContentType ^(image/|application/|text/javascript|text/css)

このファイルタイプはセキュリティの観点から許可されていません。

度々出るので一時期はファルを編集していたのですがそれすら鬱陶しいと思うようになっていたので放置してましたが、今回ふと思い出し調べていたらファイルを触らずとも簡単にプラグインでファイルタイプを管理できるようなので試してみた。

プラグイン名:PJW Mime Config

このようにプラグインからの設定でファイルタイプの追加が簡単に行えるようです。

参考元
Androidアプリ(.apk)のアップロードを可能にするWordPressプラグイン『PJW Mime Config』

WordPress 画像が別ページに表示される

WordPressを定期的に再インストールして使っていたら、いつの間にか画像をクリックしても下記のようなページに転送されるようになっていました。

画像をポップアップするプラグインももちろん機能しない状態になっており頭を抱えていたところ、下記のサイトにてヒントが載っていたため解決できました。

Changing Default WordPress Media Link URL

WordPressには隠し機能があるようでURLを下記のように編集しアクセスすると細かいオプションを設定できるページが表示されるようです。
私自身数年間WordPressを利用していますがこんな機能があるとは初めて知りました。。。まだまだ勉強不足ですねぇ^^;

URL
http://ドメイン名/WPまでのパス/wp-admin/options.php

ページ内で”image_default_link_type”という項目を探し出し、”file”というパラメータをセットします。

最後までスクロールし”設定を保存”をクリックすることで設定を保存することが可能です。

これで、画像をクリックすると画像が表示されるはずです。

WordPressで画像直リンクを規制する方法

そもそも、大した記事も書いていないのですが
最近、記事の丸コピ+画像直リンクがあり頭を抱えたのでちょっぴり対策します

プラグイン検索で下記のキーワードで検索しプラグインをインストールします
“hotlink protection”

はい。これだけ。
本当は.htaccessを使って細かく制限するのがいいんですが、中々めんどっちぃのでこれで^^;

参考にしてまとめるのは全然構わないのですがさすがに丸コピはどうかと思うのでねぇ・・・