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.zip2015-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 -yPlaySMS
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 restartMySQLの「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.confinstall.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 startapache 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でリストされているのを確認します:
lsusblsusb
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
makemakeを実行すると、私のケースのようにエラーが表示される場合:
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.rulesACTION=="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 = modem2SMS Server Tools 3を再起動します:
/etc/init.d/sms3 restartSMS Server Tools 3が実行中かどうかを確認します:
ps ax | grep -v grep | grep smsdSMS Server Tools 3のログファイルを監視します:
tail -f /var/log/smsd.logplaysmsウェブパネルでsmstoolsにログインして設定します
私のアドレスhttp://10.255.50.30/にログインします。
ユーザー名はadmin
パスワードはadmin
次に、設定 => ゲートウェイとSMSCを管理に移動します。
このような画面が表示されるはずです:
次に、smstoolsゲートウェイを編集するためにクリックします。
次のように設定されていることを確認してください:
保存をクリックし、保存されたら戻るをクリックします。
次に、SMSCを設定する必要がありますので、SMSToolsの+記号を選択してください。
受信者番号にモデムの電話番号を記入して、次のようにSMSCの詳細を入力してください。
完了したら保存をクリックします。
次に、設定 => メイン設定に移動し、次のフィールドを入力します:
デフォルトの送信者ID
デフォルトのプレフィックスまたは国コード
そして、デフォルトのSMSCをsmstoolsに設定します。下の画像のように。
保存をクリックし、最初のSMSを送信する準備が整いました。
SMSを送信する
次に、マイアカウント => メッセージを作成に移動します。
送信先に携帯電話番号を記入し、メッセージフィールドに”Hello World!”などのメッセージを記入し、送信をクリックします。
メッセージがキューに入った場合は、ここでトランザクションを追跡できます:
レポート => 送信されたすべてのメッセージに移動します。
処理されていない受信メッセージはサンドボックスに保持されます。これはレポート => サンドボックスで確認できます。
何か問題が発生した場合は、レポート => ログを表示で確認できます。
設定に問題がある場合は、playsmsフォーラムで助けを求めるのが良い場所です。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。