Script to Install a Webserver on Debian and OSX in Minutes

Each time I reinstall the OS on my laptop, I have to struggle with the web server installation and configuration. Because I have minimal hardware and I like my environment clutter free.

So I used to install each package one by one and I had to google a couple of times. One of my colleague from weDevs wrote a cool script to install everything at once. No googling required!

Here is the link to the repo

It has composer included. So if you need to install WP CLI, then it will ease the process too.

Please let me know if you have any questions about servers 🙂

Reset Lubuntu, Ubuntu or Any Debian Based Distro and Migrate to Other Distro

I was using Lubuntu since last two months on my laptop. But I had scrambled some PHP versions and had multiple apache2 installations. Moreover, my ibus based language input system was conflicting with a earlier installed version.

I was also not happy with the graphics and performance of Lubuntu. So I decided to have a fresh Ubuntu install.

I used Rufus first but the pen drive did not boot. Checked the boot priority, it was okay and the USB device was the first priority. Tried again and failed.

I don’t know why I enabled fast boot later but that totally removed the bios accessing system. Esc, F1, F12, Del… none of the keys helped.

So used the “Startup Disk Creator” tool of Lubuntu. I had some issues earlier last week when I tried to set up a IP Logging server and used “Unet bootin”. So did not try that one. Nothing was helping and it was 12 in the morning.

Then suddenly it clicked on my mind that Lubuntu is a variant of Ubuntu, so I might be able to migrate. So after a couple of searches. I found the commands. But despite following each and every step carefully, Lubuntu was still there.

At the end, I came to know about Resetter – an awesome tool to factory reset any Debian based distro.

It worked really quick and did the trick!

Here is the repo link of Resetter

If you have any questions, please free to ask them in the comments section. I will try my best to help.

How to Renew Let’s Encrypt SSL

Recently I wrote a tutorial to install Let’s Encrypt SSL on a shared hosting. The SSL certificate of my site is about to expire next month and I got 2 notification emails. So I have renewed the certificate today.

Read More

Words That Attract and Convert More – Must Read for Sales People

This is a curated list for my own easy access just like my Email Subject Inspiration list.

Please refer to the original article for detailed explanation.
189 Powerful Words That Convert: Write Copy That Gets Your Customer’s Attention Every Time

persuasive words

  1. You
  2. Free
  3. Because
  4. Instantly
  5. New

influential words

  1. Suddenly
  2. Now
  3. Announcing
  4. Introducing
  5. Improvement
  6. Amazing
  7. Sensational
  8. Remarkable
  9. Revolutionary
  10. Startling
  11. Miracle
  12. Magic
  13. Offer
  14. Quick
  15. Easy
  16. Wanted
  17. Challenge
  18. Compare
  19. Bargain
  20. Hurry

words to encourage community

  1. Join
  2. Become a member

phrases that imply exclusivity

  1. Members only
  2. Login required
  3. Class full
  4. Membership now closed
  5. Ask for an invitation
  6. Apply to be one of our beta testers
  7. Exclusive offers
  8. Become an insider
  9. Be one of the few
  10. Get it before everybody else
  11. Be the first to hear about it
  12. Only available to subscribers

phrases that imply scarcity

  1. Limited offer
  2. Supplies running out
  3. Get them while they last
  4. Sale ends soon
  5. Today only
  6. Only 10 available
  7. Only 3 left
  8. Only available here
  9. Double the offer in the next hour only

words and phrases that make you feel safe

  1. Anonymous
  2. Authentic
  3. Backed
  4. Best-selling
  5. Cancel Anytime
  6. Certified
  7. Endorsed
  8. Guaranteed
  9. Ironclad
  10. Lifetime
  11. Money Back
  12. No Obligation
  13. No Questions Asked
  14. No Risk
  15. No Strings Attached
  16. Official
  17. Privacy
  18. Protected
  19. Proven
  20. Recession-proof
  21. Refund
  22. Research
  23. Results
  24. Secure
  25. Tested
  26. Try before You Buy
  27. Verify
  28. Unconditional

ubiquitous power words

  1. Improve
  2. Trust
  3. Immediately
  4. Discover
  5. Profit
  6. Learn
  7. Know
  8. Understand
  9. Powerful
  10. Best
  11. Win
  12. Hot Special
  13. More
  14. Bonus
  15. Exclusive
  16. Extra
  17. You
  18. Free
  19. Health
  20. Guarantee
  21. New
  22. Proven
  23. Safety
  24. Money
  25. Now
  26. Today
  27. Results
  28. Protect
  29. Help
  30. Easy
  31. Amazing
  32. Latest
  33. Extraordinary
  34. How to
  35. Worst
  36. Ultimate
  37. Hot
  38. First
  39. Big
  40. Anniversary
  41. Premiere
  42. Basic
  43. Complete
  44. Save
  45. Plus!
  46. Create

word for shareable content

  1. Secret
  2. Tell us
  3. Inspires
  4. Take
  5. Help
  6. Promote
  7. Increase
  8. Create
  9. Discover

How to Install Let’s Encrypt Free SSL on NameCheap Shared Hosting

Last year, I heard about Let’s Encrypts free SSL. But I was using to host my website. So I already had SSL on my site. So I did not pay much attention to it.

From 2017, I am quite serious about my site and have a plan to write regularly on my blog. I have a “bad reputation” for coming up with a new idea every morning. So yesterday I installed the free SSL certificate on my shared hosting and saved 10 USD!

So here’s how I did it.

  1. Searched for “Free SSL” on google. (I forgot the name Let’s Encrypt 😝 ).
  2. Then I found a couple of organizations and the name “Let’s Encrypt” clicked in my head! Because my boss mentioned this name earlier.
  3. Then I searched again “Let’s encrypt on a shared hosting” and opened another tab to check if NameCheap has any built-in support for Let’s Encrypt. So I searched again.
  4. Then I found this article: How To Install Free SSL From Let’s Encrypt On Shared Hosting
  5. Opened up the terminal on my MacBook and wrote
    ssh -p 21098
    Here  -p 20198 is the port number for shell access. I got the port number from NameCheap’s Support doc.
  6. Then I used my cPanel password as the shell password.

    But the terminal told me that I do not have shell access enabled on my hosting. So I contacted NameCheap support via live chat.

  7. So I logged in again and ran the commands following commands
    git clone
    cd acme-client
    php -r "copy('', 'composer-setup.php');"; php composer-setup.php; php -r "unlink('composer-setup.php');"; php composer.phar install --no-dev
    php bin/acme setup --server letsencrypt --email
    php bin/acme issue --domains --path /home/x123011738/public_html:/home/x123011738/public_html --server letsencrypt
    Requesting certificate ...
    Successfully issued certificate.
    See /home/x123011738/acme-client/data/certs/
    cd /home/x123011738/acme-client/data/certs/

    Then I copied the contents of the fullchain and key file using the commands below and saved on my desktop with the same name.

    cat fullchain.pem
    cat key.pem
  8. Then, I logged into the cPanel of my site and found the option to manage SSL Certificates. I selected the domain and uploaded the files I have made on my desktop.If your site has static HTML files, then you’re done till here. But mine is a WordPress powered site. So I had to change the URL structure from wp-admin → Settings → General. I have changed to and then saved the settings.
  9. But I was not happy yet. Because I found the SSL certificate on the single posts and pages. But it was not working on the homepage 😐
  10. So I had to google again “Setup SSL WordPress” and found that I need to paste something in my .htaccess file!
  11. I logged in to the cPanel again and good lord! There’s no .htacess file on the hosting root! How’s this possible! How can a WordPress site run without a .htacess file!
    Then my colleague, who luckily works on the Dokan plugin support team, told me that it could be hidden. So I enabled showing hidden files and voila! The file was there with hefty lines of rewrite rules and allowing file types to uploading.
  12. I pasted the following lines at the very end of the .htacess file
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{SERVER_PORT} 80
    RewriteRule ^(.*)$$1 [R,L]

    This article has more detailed information: How to Add SSL and HTTPS in WordPress

    It helped me to redirect the traffic with http to redirect to https. So now I can see the green https on the home page 😄

  13. I have setup a cron job to renew the SSL certificate every month.

This is all I have done to activate SSL on this site. If you get confused or need any clarification from me, feel free to comment below 🙂

Firefox Test Pilot Sprint, Dhaka

It’s been a long I have attended a Mozillians event;

Hossain Al Ikram, the community lead of Mozilla QA Bangladesh gave a status on his Facebook profile asking for a photographer for his next event. I had moderate experience using DSLR cameras. So I commented on that status and this is how I got invitation to join the Firefox Test Pilot Sprint Dhaka.

I had no idea about the venue or the date when I opted in. There was a 3 day vacation because of the weekend and one national holiday and that wicked man arranged the event between that.

I was planning to go out of Dhaka and spend some quiet time alone. But attending a community event is exciting too. So I decided to stay at the city and attend both days.

Luckily, he managed 3 or more professional photographers for the event. So I was there just like a regular contributor.

What did we do?

Firefox made the test pilot program to allow the QA contributors to test new features on their existing browser with just an add-on installed.

The graphics on the test pilot site is cool and I really liked the UX. You should check their site here

I have tested Snooze Tabs, Page Shot, Min Vid and Activity Stream. They are really useful feature. Especially, I liked the Snooze Tabs and Page Shot feature. I was out managing the snacks along with the organizer in the evening. So I could not join the attendees to test the container feature. I think it would be the next big deal for Firefox.

What was different this time?

On previous events, there would be some selected peers and mentors to demonstrate things and they would be everywhere disregard the topic, place and audience.

But this time I saw all the new faces! I have never met any of them except 3-4 contributors. I found a new contributor from my college and I felt great. He helped me with the ticket and took a selfie with me :p

Meeting new people is one of my favorite things. So I can say that this weekend did not went into vain.

Everything was well organized, the meal was warm and delicious. The organizers and mentors arranged some fun activities to keep the attendees energized. So it was not that much boring after all!

The last surprise was celebrating a contributors birthday. We had a cake, cola and a lot of party foam. Literally everyone was covered with party foam. The birthday girl had quite a bath with the foam.

On the second day, I got a chance to talk about writing blogs and gave some tips to make their work easily accessible and enjoyable.

I don’t remember if we have finished any blog post on our previous events. But this time we had multiple blogs completed in Bengali and English before lunch. So that was a great achievement.

I was tired from the week long office pressure. So I left early on the last day and I don’t have a picture with the group -_-

But here is a group picture from Day 1 😀

Use Two Different Language in WordPress – One for Admin Another for Readers

Have you ever wondered how can you use two different languages in WordPress? Well I don’t know about others, but I personally don’t like the Bengali translation that much in dashboard. Coincidentally one of my Facebook friend asked me about using English in dashboard and Bengali in front!

I have never tried doing this, but my sharp little brain instantly got a witty hack idea! If you are a developer, and worked with the internationalization of WordPress, then you may know, we can set the language of WordPress from wp-admin → Settings → General. But that language works on both front and back.

I have set the language to English (United States) from settings. So both front end and back end is showing English.

The theme is responsible for the front end interface. So I have translated the theme into Bengali (Bangladesh) and put the file in `wp-content/languages/themes/`.

If you are wondering why I did not put the file on wp-content/themes/myTheme/languages/, because the translation file will be erased upon update.

What’s the hack?

The theme translation file contains the translation for Bengali (Bangladesh). So the file name should be `` but I have named the file ``. Because WordPress is set to load the English language. If I name the file for Bengali, it will not work.

Is this legal?

NO! This is completely offensive and might piss off some “Standards Nazis”. This is never a recommended way. I personally never recommend this kind of hipster configuration and alteration. But hackers never worked in conventional ways 😉

If you really feel witty today and thinking about using different languages, then you may test on your localhost.

You can’t curse me for using this trick on your live site. Go ahead, but on your own risk!