Brew Install PHP Redis on MacOS High Sierra 10.13

After upgrading to MacOS High Sierra (or any upgrade process previously), first thing I need to check is the local webserver status: apache, php, redis, mysql. Brew install php redis. Thankfully, MacOS High Sierra is now shipped with PHP 7.1 installed, which met the new standard for my future web developments.

PHP-redis is a must-installed library since I love the MySQL + Redis tandem for handling data storage and requests. Of course, along with the newly upgraded OS, the Apache installation in fresh installed with standard “It works!” welcome page.

Now, into the installation steps.

1. Install php71-redis Library

Easier said, I simply shot brew install php71-redis into Terminal and then served with Error, suggesting that I need to install Xcode Command Line Tools.

1
xcode-select --install

2. Unlink Previous PHP 5.6 Libraries

I tried to install again the library, but another error came along. It said the installed formulae was conflicting: different php versions install the same binaries. It suggested me to unlink all php 5.6 libraries. Ok then..

1
brew unlink php56

3. Install php71-redis (Again)

Hopefully this attempt for installing php71-redis library was a successful one.

1
brew install php71-redis

brew install php redis php7.1 macos high sierra

4. Edit php.ini; Include php71-redis Extension

Edit /etc/php.ini, add the extension as follows. If the php.ini file not exist, copy the php.ini~previous. Don’t forget to include the igbinary extensions too, so you won’t get problem my previous php56-redis module not loaded here.

5. Restart Apache

Final steps

1
sudo apachectl restart

dyld: Library not Loaded MacOS High Sierra

MacOS High Sierra problem when executing php command through terminal. Problem? An error stating dyld library not loaded.

dyld: Library not loaded: /usr/local/opt/jpeg/lib/libjpeg.9.dylib
Referenced from: /usr/local/bin/php
Reason: image not found
Abort trap: 6

According to this stackoverflow post, I need to uninstall current version of libjpeg. Use --ignore-dependencies to force uninstallation since libjpeg is needed by other library dependencies.

brew uninstall libjpeg --ignore-dependencies

Reinstall with: brew install libjpeg

dyld library not loaded /usr/local/opt/jpeg/lib/libjpeg.9.dylib

The command will produce warning since latest version of libjpeg has already installed Warning: jpeg 9b is already installed, it's just not linked.

Simply we can shoot brew link jpeg command into Terminal, and all our problem should be solved.

php56-redis Module Not Loaded in PHP-CGI macOS Sierra

After macOS Sierra 10.12.6 Update, my php56-redis module is not working, causing some of my PHP applications cannot communicate with Redis as storage engine. My confusion raises when the module is loaded in PHP-CLI but not in PHP-CGI. It means, if I type php -m in command line, redis shows up. But, if I access via browser via phpinfo(); nothing says about redis.

I googled for nearly two days, until I realized that I haven’t look for a file which I should investigate the first time any errors occured in PHP: error_log. In macOS, the logs are located in /var/log/apache2/ so the file is located on /var/log/apache2/error_log.

I open the file via Sublime and then voila … Here comes the essential hint.

PHP Warning:  Cannot load module 'redis' because required module 'igbinary' is not loaded in Unknown on line 0

I remember that I never typed any of these igbinary module in php.ini, so this is new case for me. Maybe after macOS Sierra last update, the module is not loaded automatically.

php56-redis Module Must Be Defined Manually in php.ini

I’m sure I have this igbinary module installed, however I try to install it again via Homebrew. Of course, it results in error message homebrew/php/php56-igbinary 2.0.4 already installed. This means the binary has been installed within the modules directory, all I need to do is define its inclusion within the php.ini file.

php56-redis module: php56-igbinary extension must be loaded manually within php.ini

I add one line statement right before the php56-redis module extension.

extension="/usr/local/opt/php56-igbinary/igbinary.so"

Restart apache, then everything just back to normal, like the good ol’ days.

Tips Mengakali Telkom Ads Injection Script

Seperti yang digerutukan oleh Raymond Reddington dalam artikelnya di medium TELKOM Indonesia Secretly Injects Advertisements, Telkom ads memang sejak lama melakukan praktik ini. Yang dirugikan tentu pengguna layanan IndiHOME (dulu Speedy) yang notabene sudah membayar harga yang tidak murah untuk mendapatkan layanan internet bulanan.

Sebelum menggunakan IndiHOME, saya menggunakan provider XL yang juga sama curangnya: menginjeksi iklan ke dalam halaman web yang saya akses. Lebih parah, XL tidak hanya injeksi script tapi juga iframing website yang mengakibatkan gagal berfungsinya website yang menolak diakses dalam iframe. Sebagai contoh, jika saya menggunakan XL untuk mengakses situs Histats, maka saya tidak akan pernah bisa login karena akan terus redirect oleh sebab cookie yang ada tidak terbaca karena kondisi site yang diakses dalam sebuah iframe.

Mau tahu caranya akali Telkom ads? Baca selengkapnya

MySQL Cannot Connect to MySQL 4.1+ Using the Old Insecure Authentication

Install phpMyAdmin di localhost AppServ namun kemudian tidak bisa diakses karena alasan old password? Begini caranya

Database connection failed: mysqlnd cannot connect to MySQL 4.1+ using the old
insecure authentication. Please use an administration tool to reset your
password with the command SET PASSWORD = PASSWORD(‘your_existing_password’).

login via Run -> cmd
login ke mysql dgn user root

1
SET old_passwords = 0;
2
SET PASSWORD FOR 'root'@'localhost' = PASSWORD ('admin');
3
SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD ('admin');
4
FLUSH PRIVILEGES;

Tips Cepat Hamil Yang Mudah dan Aman Dipraktekkan

Hidup terkadang berjalan begitu cepat. Lebaran yang lalu, keluarga sudah menembak Anda dengan pertanyaan yang sebagian besar sudah pernah mengalaminya. “Kapan Kawin?”. Ketika pertanyaan tersebut sudah terjawab saat dua bulan yang lalu Anda bersanding di pelaminan, kini muncul lagi pertanyaan baru: “Kapan punya momongan?”. Untuk menjawab pertanyaan yang satu ini, maka tips cepat hamil tentu salah satu hal yang hendak Anda ketahui selanjutnya.

Tips agar cepat hamil, tak hanya menjadi pertanyaan bagi pasangan suami istri yang baru berusia hitungan bulan. Pasutri yang bertahun-tahun belum juga dikaruniai momongan, tentu sangat berharap akan keajaiban sambil mencari dan mempraktekkan tips cepat hamil yang mereka ketahui. Ketika hasil tes kehamilan menunjukkan tanda positif, seketika itulah momen terindah terjadi setelah sekian lama mendambakan hadirnya generasi penerus keluarga.

Tips Cepat Hamil

Continue reading

Disable Spell-Checking di Mozilla Firefox

Kalo Anda seorang blogger, terutama blog dengan bahasa Indonesia, seringnya Anda akan terganggu dengan fitur spell-checking yang dimiliki browser Mozilla Firefox yang menandai dengan garis bawah berwarna merah, hampir di seluruh tulisan Anda. Artinya, tulisan Anda sama sekali tidak sesuai dengan ejaan bahasa yang dimiliki Firefox, yaitu bahasa Inggris.

Menjengkelkan? Pasti. Anda pasti ingin mematikan fitur tersebut, namun sayangnya setelah bolak-balik mengecek tab Options, tidak ada satupun setting yang mengatur soal spell-checking.

Jangan patah arang. Anda bisa mematikan fitur tersebut dengan sedikit kerja keras. Mungkin Anda merasa bahwa cara ini terlalu “programmer” buat Anda, tapi sebenarnya tidak. Ini resmi fitur dari Firfox untuk meng-“hack” setting mereka yang tidak ada dalam menu Options.

Caranya

  1. Di address bar ketik “about:config” tanpa tanda petik,
  2. Cari dengan mengetik “spell” di search box,
  3. Klik dua kali pada entri “layout.spellcheck”,
  4. Ubah nilai “1” menjadi “0”

Selesai