Setting up Magento Local Development in openSUSE


Finally, I managed to install Magento in my local environment of openSUSE. It’s quite tricky to get it up and running. It’s mainly due to filesystem permissions issue, as well as Apache virtual host configuration. I don’t have many experience with Apache, so it took more time to configure the virtual host. Because I prefer LEMP stack, and since a couple of months ago, I use Docker for local development environment instead.

Actually, I have successfully installed it in Fedora as well. But, I delete the installation due to the low disk capacity. The overall steps I did to eventually get Magento served in my localhost are:

  1. Downloading Magento from its official website, and I had to log in first, I downloaded the latest version (2.3)
  2. Installing the prerequisites as described in Magento dev docs, I got a little trouble to fulfill the minimum requirements, i.e. PHP version and extensions. openSUSE Tumbleweed has PHP v 7.2 in the main repo, but Magento didn’t support this version, so I used other repo to install v 7.1. But the issue hasn’t stopped, as that repo didn’t have php-mcrypt package. So I had to download the RPM from somewhere (likely which had the nearly compatible version.
  3. Configuring Apache in localhost, where I struggled to get the right configuration
  4. Extracting the Magento tarball and setting filesystem permissions. Actually this step was the hardest phase, although I had followed the instruction from official Magento website.
  5. Running the installation step. Since I didn’t get the right configuration of filesystem permissions, so that the front end installer didn’t show up, I used the Magento command line installer module instead. It’s quite tricky as well, actually. But it worked.
  6. Setting up PHP session directory permission manually. As I put the Magento source files in my home partition, and Apache run as wwwrun user, it cannot access the PHP session directory to write a new session. Actually Magento can make use of other session handler system like memcached and redis, but I didn’t find the corresponding packages in the custom zypper repo I mentioned before.

This is the final result of the installation of Magento in my openSUSE.

Magento dashboard


my command line history


Get notified when Woocommerce payment received

I’ll show you how to get notification when there’s a new completed payment in your Woocommerce website. You’ll be using Slack for this, since it’s free and you can get the notification right away on your phone if you install the app.

First thing first, you need to install some WordPress plugins and create a Slack channel. The plugins are Slack (unofficial) and Slack Woocommerce (kind of extension of the first one). Once you activate those plugins, you have a setting page for adding new Slack integration. But before that, you need to create a custom integration in your Slack channel.

Once you create your workspace and login to it, add an app from <your-workspace> Search for “Incoming Webhook”, and click Add Configuration button. You may need creating a new channel instead of #general for this Custom integration.

slack incoming webhook

Follow along the step to create a webhook, and you’ll get a hook URL. Copy that URL to paste it to the Slack Woocommerce configuration on your website. See below: (the URL format may differs from what it suggested)

woocommerce notification with slack

You can test that configuration by clicking test button below. And if you get a new message in your Slack channel, then the setup is done. To get the push notification on your phone, install Slack app and login to it.

Don’t forget to tick the option “When a payment in Woocommerce marked as complete” in the Events to Notify section. Note that the event it handles is ​woocommerce_order_status_completed that means you may need a kind of automatic payment confirmation. For instance if you have only bank transfer payment option.

My Very First Hacktoberfest Experience

Two months earlier, DigitalOcean –collaborated with Github– held the Hacktoberfest event. It’s a month-long celebration of open source software, which was held on October –every year. Every Github user could join the party. If you have account, then the first thing to do was signing up to the event. After that, you must make four pull requests to any Github repositories / projects –preferably which had “hacktoberfest” label in the issue page of repo though. Just it. And then… you are eligible to get swag from DigitalOcean.

By the end of October last year, there were 31,901 completed challenges made by people around the world, including me. And as other people participated the event, I receive the swag. I like it so much. It’s a kind of perfect gift for the new year! I don’t have to thank them, do I? 😀 As I have posted it on both Twitter and Instagram:


Hacking React Native!

My acquaintance encouraged (or maybe challenged) me to try React Native for developing Android app. Should I endorse you here, kang Chip? 😀  Actually he has told me about React Native a year ago. And by then, I have bought a React Native ebook as well. But, unfortunately, I had so many buts. 😀

I have quite forgot about React Native right now. In additions, a few months ago, there’s been a discourse about its license. It made me discouraged to learn it more. But now, I have set a historical step, by creating a new –dummy– React Native project. These are the screenshots:



Oops, that’s error

The most exciting part is: I can code it by Vim! Some kind of killing two birds with one stone! Yeah, I can learn both Vim and React Native at once. It’s not multitasking, but eficiency. 😀


Installing Openshift Origin on Digitalocean Droplet

Lately I wondered why my websites as well as the backend for my app (also available for Android) were so slow that the app was hardly usable. By wondering, I mean, I did’t get it, what’s happened in the underlying service, Openshift Online Starter v3. Actually I knew the cause, which was made by myself though. 😀

I was experimenting with SSL setup in the routes settings of Openshift project configuration page. There are 3 options for the secure route, Edge Termination, Passthrough Termination, Re-encrypt Termination, which are described on the official documentation page here. I have played with all those options, and the results were very very slow download speed, or maybe just the TTL. I had secure route to be activated for one of my subdomain need SSL, which was then to be paired with Full SSL option in CloudFlare. Yeah, I make use of it for the DNS server anyway. And as for SSL certificates for the Openshift route, I obtained it from Cloudflare’s. So, it’s obvious that there was a communication issue between them, particularly at SSL handshake session. Although, according to a comment for my question on Stackoverflow, he said that it’s a known issue on Openshift itself.

So, rather than disabling SSL for the sake of website speed, I was planning to move the data to traditional hosting, or VPS. I tended to choose the latter, as I have enough credit in Digitalocean right now. But, as I quite lazy to setup production server on a bare VPS, and my project was customized for Openshift, I’d rather searching for how to setup Openshift Origin on DigitalOcean. In the first run, I set up a Fedora Atomic droplet, that actually I didn’t understand what it was. 😀 Thanks to buddies on @FedoraID telegram group, I quite enlightened about it now. 🙂

Eventually, I found a thorough tutorial how to setup Openshift Origin on VPS. So, here I just want to share some screenshots of my success on setting it up. 🙂 FYI, it only took 2 hours for me to play around with it on Digitalocean droplet, as I realized that a 512 MB droplet would not sufficient to run Openshift service in it, as it encountered sudden stop so often due to the lack of memory.



Low resource (memory) on a half gig droplet



Removing Expiration Date of Oracle Express Database


I currently work on a project that uses Oracle database. For the local development, I installed it with Docker. I’ve found a handy docker file of Oracle Database Express Edition 11g published by wnameless in Github or in the official page in Docker Hub.

It’s so easy to use, that I just need to type sudo docker start oracle to get it up and running. Of course by reading the Readme first.

But then I noticed an error: ORA-28002: the password will expire within 7 days. Although it doesn’t affect the app, I feel a bit annoyed. So I googled it, and found the solution afterward. But I lost the URL. My bad!

Just take a look at above picture. I won’t type in the command here, as you can found it somewhere in Stackoverflow, actually. 😀


Oh-my-zsh, Tmux, Vim


My Konsole as of October 2017

This time, I want to share my dotfiles of my new toys: zsh, tmux and vim at once. I’ve  found out what’s tmux actually, a couple of days ago by asking to a Telegram channel, @vimid. It’s “terminal multiplexer”, some kind of, it can break your single terminal session into multiple sessions.1 So, if I made use of Konsole tabs to use vim and php artisan serve of Laravel at a time then, now I just need tmux to run them concurrently.


What I know about zsh is not more than a console shell for macOS, before. Although, I did realize that it’s included in every Linux distributions as well. So, I thought I wouldn’t touch it no matter what. 😀

But this is my turning point to change my idealism. 😀 I just installed it, little bit configuring, and set it as bash replacement to Konsole. Umm, am I now look like a half macOS user? 😀

So, for zsh, I installed oh-my-zsh plugin and did some tweaks for the look of the prompt. I wanted a Powerline-like look, but I didn’t want to use Powerline. So, I installed powelevel9k theme instead. And now, I’m very satisfied, as it looks much nicer than my previous console.


I don’t configure tmux much, since I just know it not that long. I thought it was just like bash or other console shells. As I had been trying it once, one day. I run it, and nothing appeared other than a command line shell. And I just realized how it works lately. 😀

In my config, I don’t do more than set default shell to zsh, and install tmux-powerline-theme with tpm.


As for vim, I have known it for quite long time. The first time I used it, like many developers out there, I didn’t know how to exit. 😀

But yeah, slowly but sure, I somehow have a little knowledge how to handle it. I have configured it quite seriously as I use it for my daily need: coding. But still, I’d say, I haven’t got its full usability yet, as I mentioned this before.  Just check out my .vimrc below, in case you so curious for what plugins I installed.