Raspberry Pi · 4 min read · Dec 08, 2025

Raspberry Pi SMSサーバーのインストール方法

始める前に

このチュートリアルでは、Raspbianを実行しているRaspberry Pi 2 Model BにSMSサーバーを設定する方法を示します。

playsmsとsmstoolsを使用します。私の例では、Huawei E3131 3Gモデムを使用しました。

Raspbian

まず、raspbianをダウンロードする必要があります。最新バージョンはhttps://www.raspberrypi.org/downloads/から入手できます。

直接のURL: http://downloads.raspberrypi.org/raspbian_latest

次に、ファイルを解凍する必要があります: 2015-05-05-raspbian-wheezy.zip:

unzip 2015-05-05-raspbian-wheezy.zip

2015-05-05-raspbian-wheezy.imgという名前のファイルが得られます。このファイルは、micro-sdカードに書き込む必要があります。

Raspberry Piの使い方やmicro-sdへのイメージ書き込みの基本を知りたい場合は、次のチュートリアルを読むことから始めることができます:

https://www.howtoforge.com/tutorial/howto-install-raspbian-on-raspberry-pi/

イメージファイルをmicro-sdカードに書き込みます。私のPCでは、micro-sdカードはLinuxで/dev/mmcblk0として認識されます。ddを使用できます:

dd bs=4M if=2015-05-05-raspbian-wheezy.img of=/dev/mmcblk0
  • ブロックサイズを4Mに設定すると、ほとんどの場合に機能します。機能しない場合は、1Mを試してください。ただし、これにはかなりの時間がかかります。
  • また、rootとしてログインしていない場合は、これをsudoでプレフィックスする必要があります。

イメージが書き込まれたら、micro-sdカードをRaspberry Piに挿入し、電源を入れます。

Raspberry Piが起動すると、最初の起動時にこのような画面が表示されるはずです。

次に、次のオプションを選択します:

1 ファイルシステムを拡張
3 デスクトップ/Scratchへのブートを有効にする -> コンソールテキストコンソールを選択し、ログインが必要(デフォルト)
8 高度なオプション -> A4 SSH -> 有効にする
8 高度なオプション -> A0 更新
終了 -> 再起動

次に、次のユーザー名でログインできます: pi、パスワード: raspberry。

まず、次のコマンドを編集してサーバーのネットワーク設定を行います。

sudo nano /etc/network/interfaces

私の/etc/network/interfacesファイルは次のようになります(必要に応じて設定を変更してください):

auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet static
        address 10.255.50.30
        netmask 255.255.255.0
        gateway 10.255.50.1
        dns-nameservers 8.8.8.8 8.8.4.4

次に、Piでネットワークサービスを再起動します:

sudo /etc/init.d/networking restart

次に、次のコマンドで起動時にDHCPを無効にします:

sudo update-rc.d -f dhcpcd remove

後で再度有効にしたい場合は、次のコマンドを実行します:

sudo update-rc.d dhcpcd defaults

これで、PuTTYなどのSSHクライアントを使用してPCからRaspberry Piに接続できます。

次に、次のコマンドでraspbianを更新します:

sudo apt-get update && apt-get upgrade -y && apt-get dist-upgrade -y

PlaySMS

playsms 1.1をダウンロードしてインストールします:

sudo -s  
apt-get install apache2 libapache2-mod-php5 mysql-server php5 php5-cli php5-mysql php5-mcrypt php5-gd php5-imap php5-curl  
php5enmod mcrypt  
service apache2 restart

MySQLの「root」ユーザーの新しいパスワードを求められたら、強力なパスワードを使用してください。この例ではMyP@$$w0rdを使用しました。

次に、http://your-ipにアクセスします。私の場合はhttp://10.255.50.30です。”It Works!”というページが表示されます。

cd /tmp/  
wget http://downloads.sourceforge.net/project/playsms/playsms/Version%201.1/playsms-1.1.tar.gz  
tar -zxf playsms-1.1.tar.gz -C /usr/local/src  
ls -l /usr/local/src/  
cd /usr/local/src/playsms-1.1/  
cp install.conf.dist install.conf  
nano install.conf

install.conf.distをinstall.confにコピーし、install.confを編集します。

install.confを読み、システム構成に合わせて変更を加えます。

ファイルを編集したので、次のようになります:

# INSTALL DATA
# ============


# 以下のINSTALL DATAをシステム構成に合わせて変更してください

# 変数名は変更しないでください。値のみ変更できます

# MySQLデータベースのユーザー名
DBUSER="root"

# MySQLデータベースのパスワード
DBPASS="MyP@$$w0rd"

# MySQLデータベース名
DBNAME="playsms"

# MySQLデータベースホスト
DBHOST="localhost"

# MySQLデータベースポート
DBPORT="3306"

# Webサーバーのユーザー、例えばapache2ユーザーはデフォルトでwww-dataです
# 注意: Webサーバーユーザーを確認してください
WEBSERVERUSER="www-data"

# Webサーバーのグループ、例えばapache2グループはデフォルトでwww-dataです
# 注意: Webサーバーグループを確認してください
WEBSERVERGROUP="www-data"

# playSMSの抽出されたソースファイルへのパス
PATHSRC="$(pwd)"

# playSMSのWebファイルへのパス
# 注意: Webルートパスを確認してください。この例では/var/www/htmlです
PATHWEB="/var/www/html/playsms"

# playSMSの追加ファイルへのパス
PATHLIB="/var/lib/playsms"

# playSMSのデーモンおよびその他のバイナリファイルへのパス
PATHBIN="/usr/local/bin"

# playSMSのログファイルへのパス
PATHLOG="/var/log/playsms"


# INSTALL DATAの終了
# ===================

次に実行します:

./install-playsms.sh

すべてが正常に見える場合はYを押します。

次に、rc.localファイルに行を追加して、playsmsが起動時に開始されるようにします。

nano /etc/init.d/rc.local

ファイルの最後に次の行を追加します: /usr/local/bin/playsmsd start(exitコマンドがある場合はその前に)。 このようにして、playsmsdは起動時に自動的に開始されます。

..
/usr/local/bin/playsmsd start

apache vhostファイルを編集します:

nano /etc/apache2/sites-available/default

私のvhostファイルは次のようになります:

        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/html/playsms
        
                Options FollowSymLinks
                AllowOverride None
        
        
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # 可能な値には: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined

次に、変更を適用するためにApache2の設定を再読み込みします。

service apache2 reload

次に、次のURLでplaysmsウェブサイトにアクセスできるはずです:

http://your-ipなど。http://10.255.50.30

次のようにログインできます:

ユーザー名: admin
パスワード: admin

ゲートウェイ - SMS Server Tools 3

まず、最新バージョンをビルドするためのビルドツールをインストールします。実行:

apt-get install build-essential libusb-1.0 libusb-1.0-0-dev

次に、Huawei E3131モデムを接続し、lsusbでリストされているのを確認します:

lsusb
lsusb
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 12d1:14fe Huawei Technologies Co., Ltd.

ID: 12d1:1506であることを望んでいますが、現在は12d1:14feとして検出されています。

これを変更するために、usb_modeswitchをシステムにインストールします。最新バージョンはここから入手できます:

http://www.draisberghof.de/usb_modeswitch/#download

cd /tmp  
wget http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-2.2.5.tar.bz2  
tar jxvf usb-modeswitch-2.2.5.tar.bz2  
cd usb-modeswitch-2.2.5  
make install  
cd /tmp  
wget http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-data-20150627.tar.bz2  
tar xjvf usb-modeswitch-data-20150627.tar.bz2  
cd usb-modeswitch-data-20150627  
make install

モデムのプラグを外し、再度接続し、次のコマンドを実行します:

lsusb
 lsusb
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 006: ID 12d1:1506 Huawei Technologies Co., Ltd. E398 LTE/UMTS/GSM Modem/Networkcard

これで、希望のモード12d1:1506が得られました。

次に、SMS Server Tools 3に進みます。

まず、ダウンロードして解凍し、インストールします。

cd /usr/local/src  
wget http://smstools3.kekekasvi.com/packages/smstools3-3.1.15.tar.gz  
tar -zxvf smstools3-3.1.15.tar.gz  
cd smstools3  
make

makeを実行すると、私のケースのようにエラーが表示される場合:

 make
cd src && make -
make[1]: Entering directory '/usr/local/src/smstools3/src'
Makefile:51: * recipe commences before first target.  Stop.
make[1]: Leaving directory '/usr/local/src/smstools3/src'
Makefile:10: recipe for target 'compile' failed
make: * [compile] Error 2

次のようにします:

nano src/Makefile

問題はタブが欠けていることです。次を探します:

ifeq (,$(findstring DISABLE_INET_SOCKET,$(CFLAGS)))
override LFLAGS += -lsocket -lnsl
endif

次の行をタブで移動します:

ifeq (,$(findstring DISABLE_INET_SOCKET,$(CFLAGS)))
        override LFLAGS += -lsocket -lnsl
endif

再度makeを実行してみてください:

make  
make install

次に、必要なフォルダーを作成します:

mkdir -p /var/log/sms/stats  
mkdir -p /var/spool/sms/{checked,failed,incoming,outgoing,sent}  
mkdir /var/spool/sms/modem1  
chown www-data:www-data -R /var/spool/sms  
chmod 777 -R /var/spool/sms

次に、元の設定ファイルを移動し、PlaySMSからサンプルをダウンロードします:

mv /etc/smsd.conf /etc/smsd.conf.dist  
cd /tmp   
wget -c https://raw.githubusercontent.com/antonraharja/playSMS/master/contrib/smstools/smsd.conf  
cp smsd.conf /etc/

常に正しいデバイスを使用するために、動的デバイスファイルを使用します。

動的デバイスファイルについての詳細は、次のURLを参照してください: http://antonraharja.com/2015/05/14/persistent-paths-for-dynamic-device-file/

nano /etc/udev/rules.d/80-ttyusb-map.rules
ACTION=="add", KERNEL=="ttyUSB[0-9]*", PROGRAM="/etc/udev/rules.d/ttyusb-map.sh %p", SYMLINK+="gsm%c"
touch /etc/udev/rules.d/ttyusb-map.sh   
chmod 755 /etc/udev/rules.d/ttyusb-map.sh   
nano /etc/udev/rules.d/ttyusb-map.sh
#!/usr/bin/perl -w

@items = split("/", $ARGV[0]);
for ($i = 0; $i < @items; $i++) {
    if ($items[$i] =~ m/^usb[0-9]+$/) {
        print $items[$i + 1] . "\n";
        last;
    }
}

モデムのプラグを外し、再度接続すると、/dev/gsm*に配置されるはずです:

ls -l /dev/gsm*   
lrwxrwxrwx 1 root root 7 Jul 24 01:39 /dev/gsm1-1 -> ttyUSB0   
lrwxrwxrwx 1 root root 7 Jul 24 01:39 /dev/gsmmodem -> ttyUSB0

ファイルにいくつかの変更を加えたので、私の設定は次のようになります。私のモデムは/dev/gsm1-1にありますので、それをあなたの場所に置き換えてください。

# グローバル設定

devices = modem1

loglevel = 5

# ログファイル
stats = /var/log/sms/stats
logfile = /var/log/sms/smsd.log

# デフォルトのキューのディレクトリ = /var/spool/sms
outgoing = /var/spool/sms/outgoing
checked = /var/spool/sms/checked
failed = /var/spool/sms/failed
incoming = /var/spool/sms/incoming
sent = /var/spool/sms/sent

# レポートフォルダーを設定しないでください。ステータスレポートファイルはincomingに保存されます
#report = /var/spool/sms/report

delaytime = 2
errorsleeptime = 10
blocktime = 180
autosplit = 3
#receive_before_send = yes
incoming_utf8 = yes

# キューの設定

[queues]
modem1 = /var/spool/sms/modem1
#modem2 = /var/spool/sms/modem2

# モデムの設定

# モデム名: modem1
# モデムタイプ: Wavecom USB
[modem1]
#init = AT+CNMI=2,2,0,1,0;+CMEE=1
#init = AT+CPMS="ME","ME","ME"
device = /dev/gsm1-1
baudrate = 19200
incoming = yes
pin = 3391
report = yes
queues = modem1
decode_unicode_text = yes
cs_convert = yes

# モデム名: modem2
# モデムタイプ: Wavecom USB
#[modem2]
#init = AT+CNMI=2,2,0,1,0;+CMEE=1
#device = /dev/ttyUSB1
#baudrate = 115200
#incoming = yes
#report = yes
#queues = modem2

SMS Server Tools 3を再起動します:

/etc/init.d/sms3 restart

SMS Server Tools 3が実行中かどうかを確認します:

ps ax | grep -v grep | grep smsd

SMS Server Tools 3のログファイルを監視します:

tail -f /var/log/smsd.log

playsmsウェブパネルでsmstoolsにログインして設定します

私のアドレスhttp://10.255.50.30/にログインします。

ユーザー名はadmin
パスワードはadmin

次に、設定 => ゲートウェイとSMSCを管理に移動します。

このような画面が表示されるはずです:

次に、smstoolsゲートウェイを編集するためにクリックします。

次のように設定されていることを確認してください:


保存をクリックし、保存されたら戻るをクリックします。

次に、SMSCを設定する必要がありますので、SMSToolsの+記号を選択してください。

受信者番号にモデムの電話番号を記入して、次のようにSMSCの詳細を入力してください。


完了したら保存をクリックします。

次に、設定 => メイン設定に移動し、次のフィールドを入力します:

デフォルトの送信者ID
デフォルトのプレフィックスまたは国コード

そして、デフォルトのSMSCsmstoolsに設定します。下の画像のように。

保存をクリックし、最初のSMSを送信する準備が整いました。

SMSを送信する

次に、マイアカウント => メッセージを作成に移動します。

送信先に携帯電話番号を記入し、メッセージフィールドに”Hello World!”などのメッセージを記入し、送信をクリックします。

メッセージがキューに入った場合は、ここでトランザクションを追跡できます:

レポート => 送信されたすべてのメッセージに移動します。

処理されていない受信メッセージはサンドボックスに保持されます。これはレポート => サンドボックスで確認できます。

何か問題が発生した場合は、レポート => ログを表示で確認できます。

設定に問題がある場合は、playsmsフォーラムで助けを求めるのが良い場所です。

https://forum.playsms.org/

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。