(obsolete) playSMS 1.4.2 on Ubuntu 18.04


This article is old. Please use playSMS version 1.4.3 instead. Previous version of playSMS contains security vulnerabilities and have been fixed in 1.4.3.

Same method described in this article can still be used to install playSMS 1.4.3, you just need to change 1.4.2 to 1.4.3.

This howto will show you how to install playSMS 1.4.2 on Ubuntu 18.04, the latest version as of today. By using Ubuntu 18.04 as base distribution you can test whether or not playSMS 1.4.2 work properly with PHP 7.2 and MySQL 5.7.

Let\’s Start

Login to your DigitalOcean web panel. If you haven\’t got one then register for free here: https://m.do.co/c/aeec1cef58b6

Shameless plug: Notice the referral link there ? Yes, please click it so that you can earn USD 10 credit on DigitalOcean (for testing this howto maybe?) and when you actually use and spent money on DigitalOcean then I\’ll also get something from them too 🙂

Quick FAQ:

Q: Can I install on different server other than DigitalOcean ?
A: Yes of course, you need Internet and preferably CLI root access


Create a new droplet. Just in case you don\’t know what a droplet is, a droplet is equal to a server or a VPS at DigitalOcean.

Select Linux distribution Ubuntu 18.04 with the lowest VPS specification (the cheapest that is).

Once the server ready you may SSH to the server and start update and upgrade it:

[code lang=text]
apt update && apt -y upgrade

Wait until the upgrade finished. It should take a few minutes only.

Install required Linux packages:

[code lang=text]
apt -y install nginx mysql-server php-fpm php-cli php-mysql php-gd php-imap php-curl php-xml php-mbstring

Please note that we will be installing: Nginx, MySQL 5.7 and PHP 7.2.


Next is to prepare Nginx to host playSMS domain, in this example I will use my domain my.textng.com.

Prepare virtual host directory:

[code lang=text]
mkdir -p /home/vhosts/my.textng.com/html
mkdir -p /home/vhosts/my.textng.com/logs

Setup Nginx to enable my.textng.com site:

[code lang=text]
cd /etc/nginx/sites-available
nano my.textng.com.conf

Copy this to my.textng.com.conf and save it:

[code lang=text]
server {
listen 80;

server_name my.textng.com;

root /home/vhosts/my.textng.com/html;
index index.html index.htm index.php;

access_log /home/vhosts/my.textng.com/logs/access.log;
error_log /home/vhosts/my.textng.com/logs/error.log;

location / {
try_files $uri $uri/ =404;

location ~ \\.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;

Enable my.textng.com:

[code lang=text]
cd /etc/nginx/sites-enabled
ln -s ../sites-available/my.textng.com.conf .

Restart Nginx:

[code lang=text]
systemctl restart nginx

Until now you will be able to browse your server (in my case browse http://my.textng.com). No HTTPS, I don\’t plan to write SSL howto right now, but maybe later. You can always re-configure your Nginx to serve HTTPS, there are a few good manual to do so in the Internet I\’m sure.


Nginx done, lets do MySQL.

Create new database for playSMS:

[code lang=text]
mysqladmin create playsms

Add new MySQL user called playsms and set it to manage playSMS database. Login to MySQL server from CLI:

[code lang=text]

From inside MySQL shell:

[code lang=text]
CREATE USER \’playsms\’@\’localhost\’ IDENTIFIED BY \’changethislater\’;
GRANT ALL PRIVILEGES ON playsms.* TO \’playsms\’@\’localhost\’ WITH GRANT OPTION;

At this point please note that new MySQL user is playsms, with password changethislater and playSMS database name is playsms.


Ok MySQL configured. Now lets get into playSMS.

Get the playSMS 1.4.2, save it in your home directory (in this howto its in /root), extract it and edit install.conf for playSMS installation:

[code lang=text]
cd ~
wget -c \”https://sourceforge.net/projects/playsms/files/playsms/Version%201.4.2/playsms-1.4.2.tar.gz/download\” -O playsms-1.4.2.tar.gz
tar -zxf playsms-1.4.2.tar.gz
cd playsms-1.4.2/
cp install.conf.dist install.conf
nano install.conf

On install.conf edit options according to your setups, for example in this howto:

  • DBUSER=\"playsms\"
  • DBPASS=\"changethislater\"
  • PATHWEB=\"/home/vhosts/my.textng.com/html\"

Save the file and ready to install playSMS using provided install script.

Run the install script:

[code lang=text]

Confirmation configuration will be shown, check again and continue only when everything is correct.

Hit y or Y to continue the install script.

playSMS install script will download necessary files and copy files and folders to appropriate location according to install.conf configuration, and update the database.

Once done lets check whether your playSMS installed and configured properly or not:

[code lang=text]
playsmsd /etc/playsmsd.conf check

You\’ll know its working when you see PIDS are not empty:


Nginx, MySQL and playSMS has been installed and configured, you may try to browse your server and login to playSMS with default username and password:

[code lang=text]
Username: admin
Password: admin

Leave comments or join discussion at https://forum.playsms.org

3 thoughts on “(obsolete) playSMS 1.4.2 on Ubuntu 18.04

  1. Do not forget to add the universe repository.
    Just type the following;

    sudo add-apt-repository universe

    And then follow the instructions above.

  2. the install is not working for me


    Getting composer from https://getcomposer.com

    Please wait while the install script downloading composer

    Composer is ready in this folder

    Pleas wait while composer getting and updating required packages

    Do not run Composer as root/super user! See https://getcomposer.org/root for details
    Loading composer repositories with package information
    Updating dependencies (including require-dev)
    Nothing to install or update
    Generating autoload files

    Composer has been installed and packages has been updated


    playsmsd /etc/playsmsd.conf check

    playsmsd: command not found

    Nothing in the bin directory
    playSMS bin path = /usr/local/bin

    ls -l /usr/local/bin

    total 0

Leave a Reply

Your email address will not be published. Required fields are marked *