findとgrepで特定の文字列を含むファイルを抽出する。

find と grep を組み合わせて、カレントディレクトリ配下にあるファイルから特定の文字列を含むファイルを抽出することができます。

■手順

1.検索したいディレクトリまで移動
$ cd (検索対象としたいディレクトリ)

2.以下のコマンドで抽出
$ find . -type f -name '*' | xargs grep (検索したい文字列)

$ find . -type f -name '*' | grep (検索したい文字列) とすると(xargsがないと)期待通りの結果になりません。findから渡されるのは見つけ出したファイルの「リスト」であるため、リスト自体を grep してしまうことになります。

上記は、ubuntu 18.04 LTS で動作確認しました。

スポンサーリンク

Apacheのバーチャルホストの設定

独自ドメインを複数取得して複数のサイトを運用したい場合はバーチャルホストを設定します。
CentOS、および、ubuntuにインストールされたApacheにバーチャルホストをそれぞれ設定してみました。OS、Apacheの組み合わせは以下です。

CentOS 6.10 + Apache 2.2.15
ubuntu 18.04 LTS + Apache 2.4.29

※補足:この記事の内容は「ドキュメントルートの変更」をしたあとに行っています。

[広告]


rootユーザで作業します。

■CentOS 6.10 + Apache 2.2.15 の場合

# cd /etc/httpd/conf
# vi httpd.conf
==============================
Listen 80 (httpd.confに、すでに記載済みであることを確認)
NameVirtualHost *:80 (httpd.confに、すでに記載済みであることを確認)

(以下の内容を、httpd.conf の最後に追加する)

<VirtualHost *:80>
    ServerAdmin root@localhost
    DocumentRoot /var/www/html/XXX (XXXは任意のディレクトリ)
    ServerName www.example1.com (取得した独自ドメイン)
    ErrorLog logs/error_log
    CustomLog logs/access_log combined
    <Directory "/var/www/html/XXX"> (ドキュメントルートにあわせる)
        Options FollowSymLinks・・ (必要に応じてオプションを設定)
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin root@localhost
    DocumentRoot /var/www/html/YYY (YYYは任意のディレクトリ)
    ServerName www.example2.com (取得した独自ドメイン)
    ErrorLog logs/error2_log
    CustomLog logs/access2_log combined
    <Directory "/var/www/html/YYY"> (ドキュメントルートにあわせる)
        Options FollowSymLinks・・ (必要に応じてオプションを設定)
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

(httpd.conf を保存する。)
==============================

# apachectl configtest (httpd.conf に間違いがないかチェックする)
# /etc/rc.d/init.d/httpd restart (Apacheの再起動)

上記の設定の場合、

http://www.example1.com/ でアクセスしてきた場合は、/var/www/html/XXX 配下のコンテンツが表示されます。

http://www.example2.com/ でアクセスしてきた場合は、/var/www/html/YYY 配下のコンテンツが表示されます。

また、error_log と access_log の出力ファイルをわけていますが、同じにしても大丈夫です。

■ubuntu 18.04 LTS + Apache 2.4.29 の場合

/etc/apache2/sites-available 配下にある 000-default.conf をコピーして
001-default.conf を作ります。
# a2ensite 001-default.conf で 001-default.confの設定を有効にしておきます。

001-default.conf では、すでに <VirtualHost> タグを使用しているので(囲っているので)それを利用します。

# vi 001-default.conf
==============================
(以下の内容のように修正、加筆する)

<VirtualHost *:80>
    ServerName www.example1.com (独自ドメインに修正する)
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/XXX (XXXは任意のディレクトリ)
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    #(以下の<Directory>・・</Directory>は追記する)
    <Directory /var/www/html/XXX> (ドキュメントルートにあわせる)
        Options FollowSymLinks・・ (必要に応じてオプションを設定)
        AllowOverride None
        Require all granted
        
    </Directory>
</VirtualHost>

#(以下は、まるまる追記する)
<VirtualHost *:80>
    ServerName www.example2.com (独自ドメインに修正する)
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/YYY (YYYは任意のディレクトリ)
    ErrorLog ${APACHE_LOG_DIR}/error2.log
    CustomLog ${APACHE_LOG_DIR}/access2.log combined
    <Directory /var/www/html/YYY> (ドキュメントルートにあわせる)
        Options FollowSymLinks・・ (必要に応じてオプションを設定)
        AllowOverride None
        Require all granted
        
    </Directory>
</VirtualHost>

(001-default.confを保存する。)
==============================

# apache2ctl configtest (conf に間違いがないかチェックする)
# service apache2 restart (Apacheの再起動)

完了。

スポンサーリンク