Category Archives: PHP

Mengatasi Error phpMyAdmin: Cannot start session without errors pada php-fpm

Halo sobat, pagi ini saya baru saja menginstall php-fpm dan phpMyAdmin dari repositori remi/epel/rpmfusion. Namun, saat membuka halaman phpMyAdmin, saya mendapati pesan error sebagai berikut:


phpMyAdmin Error

phpMyAdmin – Error
Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.

Sepertinya error tersebut muncul karena PHP tidak dapat menulis session, disebabkan oleh masalah keberadaan dan izin pada direktori /var/lib/php/session.

Cara Mengatasi Error Session di phpMyAdmin

  1. Buka File Konfigurasi PHP
    Sobat harus login ke terminal sebagai root, kemudian buka file /etc/php.ini dan cari bagian [Date]. Di sana, ubahlah baris berikut:

    ;session.save_path = "/tmp"

    Menjadi:

    session.save_path = /var/lib/php/session
  2. Restart php-fpm
    Setelah melakukan perubahan, restart php-fpm dengan perintah:

    service php-fpm restart

    Selanjutnya, buka phpMyAdmin menggunakan browser atau profil yang berbeda.

  3. Jika Masih Bermasalah
    Bila cara di atas tidak berhasil, lakukan langkah tambahan berikut:

    mkdir /var/lib/php/session chmod 777 /var/lib/php/session

    Kemudian, restart kembali php-fpm:

    service php-fpm restart

Alhamdulillah, setelah menggunakan cara tersebut, saya dapat mengakses phpMyAdmin dengan normal.

Saya menemukan di beberapa referensi online bahwa penanganan error session pada phpMyAdmin seringkali berkaitan dengan konfigurasi PHP yang belum sempurna, dan solusi dengan mengubah izin direktori sudah terbukti efektif. Sobat bisa merujuk ke dokumentasi PHP resmi atau artikel di web seperti
PHP Manual untuk informasi lebih lanjut.

Cara Hapus White Space atau Karakter Kosong dengan PHP

Halo sobat, pada kesempatan kali ini saya akan menjelaskan bagaimana cara menghapus karakter kosong di dalam script PHP atau halaman HTML menggunakan preg_replace. Walaupun terlihat sederhana, metode ini terbukti manjur untuk membersihkan string dari karakter-karakter yang tidak diperlukan.

Karakter Kosong yang Dimaksud

Karakter kosong yang saya maksud meliputi:

“\r” (ASCII 13 (0x0D)), carriage return.
“\0” (ASCII 0 (0x00)), NULL byte.
“\n” (ASCII 10 (0x0A)), baris baru (line feed).
“\x0B” (ASCII 11 (0x0B)), tab vertikal.
“ ” (ASCII 32 (0x20)), ruang biasa.
“\t” (ASCII 9 (0x09)), tab.

Menghapus Karakter Kosong dengan preg_replace

Untuk membersihkan karakter-karakter di atas, kita dapat menggunakan kode berikut:

$string = preg_replace('/\s+/', '', $string); $string = str_replace(' ', ' ', $string);

Perintah preg_replace('/\s+/', '', $string) akan menghapus semua jenis spasi (termasuk \r, \n, \t, dan spasi biasa) dari string, sedangkan str_replace dapat digunakan untuk mengganti karakter tertentu jika diperlukan.

Merapikan String dengan Fungsi Trim

Untuk lebih merapikan string, sobat dapat menambahkan fungsi trim(), ltrim(), rtrim(), dan chop(). Berikut fungsinya:

  • trim(): Menghapus karakter spasi di awal dan akhir string.
  • ltrim(): Menghapus spasi di awal string.
  • rtrim(): Menghapus spasi di akhir atau ujung string.
  • chop(): Fungsi serupa dengan rtrim().

Penggunaan fungsi-fungsi ini dapat membantu memastikan bahwa string yang dihasilkan benar-benar bersih dan rapi sebelum diproses lebih lanjut.

Solusi “date.timezone” Error pada PHP: date(), It is not safe to rely on the system’s timezone settings

Halo sobat, saya baru saja menginstal php-fpm dan menjalankan phpMyAdmin. Namun, ketika membuka file PHP seperti tes.php, muncul error peringatan mengenai timezone. Pesan error tersebut tampil seperti di bawah ini:

Warning: phpinfo():  It is not safe to rely on the system's timezone settings.  You are *required* to use the date.timezone setting  or the date_default_timezone_set() function.  In case you used any of those methods and you are still getting this warning,  you most likely misspelled the timezone identifier.  We selected 'America/New_York' for 'EST/-5.0/no DST'  instead in /home/rahmatriyanto/www/localhost/tes.php on line 6

Setelah saya cek di berbagai referensi, ternyata error ini disebabkan karena pengaturan timezone belum disetting dengan benar.

Mengatasi Error Timezone

Untuk mengatasi masalah ini, sobat dapat mengatur timezone di file konfigurasi PHP (php.ini). Caranya cukup mudah, yaitu dengan menambahkan baris date.timezone = GMT pada bagian [Date] di file /etc/php.ini.

  1. Login sebagai root
    Buka terminal dan login sebagai root.
  2. Buka file konfigurasi PHP
    Gunakan editor teks seperti nano untuk membuka file /etc/php.ini:

    nano /etc/php.ini
  3. Cari bagian [Date]
    Temukan bagian konfigurasi yang berkaitan dengan [Date]. Biasanya tampilannya seperti berikut:

    [Date] ; Defines the default timezone used by the date functions ; https://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone ;date.timezone = ; https://www.php.net/manual/en/datetime.configuration.php#ini.date.default-latitude ;date.default_latitude = 31.7667 ; https://www.php.net/manual/en/datetime.configuration.php#ini.date.default-longitude ;date.default_longitude = 35.2333 ; https://www.php.net/manual/en/datetime.configuration.php#ini.date.sunrise-zenith ;date.sunrise_zenith = 90.583333 ; https://www.php.net/manual/en/datetime.configuration.php#ini.date.sunset-zenith ;date.sunset_zenith = 90.583333
  4. Tambahkan Pengaturan Timezone
    Ubah atau tambahkan baris berikut sehingga menjadi:

    [Date] ; Defines the default timezone used by the date functions ; https://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone date.timezone = GMT ; https://www.php.net/manual/en/datetime.configuration.php#ini.date.default-latitude ;date.default_latitude = 31.7667 ; https://www.php.net/manual/en/datetime.configuration.php#ini.date.default-longitude ;date.default_longitude = 35.2333 ; https://www.php.net/manual/en/datetime.configuration.php#ini.date.sunrise-zenith ;date.sunrise_zenith = 90.583333 ; https://www.php.net/manual/en/datetime.configuration.php#ini.date.sunset-zenith ;date.sunset_zenith = 90.583333
  5. Simpan dan Tutup File
    Setelah melakukan perubahan, simpan file dan keluar dari editor (Ctrl+X, lalu Y dan Enter pada nano).
  6. Restart PHP-FPM
    Agar perubahan diterapkan, restart layanan php-fpm:

    service php-fpm restart
Dengan menambahkan pengaturan date.timezone = GMT pada file /etc/php.ini dan merestart php-fpm, saya berhasil mengatasi error peringatan timezone pada phpMyAdmin dan file PHP lainnya. Semoga panduan ini bermanfaat bagi sobat yang mengalami masalah serupa. Selamat mencoba dan terus eksplorasi dunia pemrograman PHP!

shell_exec, Cara Mudah Menjalankan Aplikasi Command Line Linux dari PHP

Halo sobat, pagi ini saya ingin berbagi tentang cara menggunakan fungsi shell_exec dalam PHP untuk mengeksekusi perintah command line. Seringkali, kita butuh menjalankan perintah langsung dari script PHP, misal untuk menghapus semua folder dan file, dan saya yakin teknik ini akan sangat berguna buat kita yang bekerja dengan server Linux.

Contoh Penggunaan Dasar shell_exec

Berikut sintak secara umum yang digunakan untuk menghapus semua folder dan file:

<?php $hasil = shell_exec('rm -rf /home/rahmatriyanto'); echo "<pre>$hasil</pre>"; ?>

Dalam contoh ini, perintah rm -rf digunakan untuk menghapus direktori /home/rahmatriyanto beserta isinya. Saya menggunakan fungsi shell_exec untuk menjalankan perintah tersebut dan menampilkan output-nya.

Mengeksekusi Variabel dengan shell_exec

Satu hal yang membuat saya kagum dengan fungsi shell_exec adalah kemampuannya untuk mengeksekusi perintah yang mengandung variabel. Contoh berikut menunjukkan bagaimana variabel dapat digunakan:

<?php $namafolder = "/home/rahmatriyanto"; $hasil = shell_exec("rm -rf $namafolder"); echo "<pre>$hasil</pre>"; ?>

Perhatikan bahwa saya menulis perintah dengan menggunakan tanda kutip ganda agar variabel $namafolder bisa ter-parse dengan benar. Meski ada sedikit imporfisasi dalam penulisan, hal ini membuat script terasa lebih natural dan bersahabat.

Alternatif: Menggunakan system() dan exec()

Selain shell_exec, sobat juga bisa menggunakan fungsi system() dan exec() untuk tujuan yang sama. Masing-masing fungsi memiliki kelebihan tersendiri:

  • system(): Langsung menampilkan output perintah ke layar.
  • exec(): Menyimpan output perintah dalam array untuk diproses lebih lanjut.

Misal, untuk menggunakan system(), cukup ganti shell_exec dengan system:

<?php system("rm -rf $namafolder"); ?>

Sedangkan dengan exec(), perintahnya akan seperti berikut:

<?php $output = array(); exec("rm -rf $namafolder", $output); echo "<pre>" . implode("\n", $output) . "</pre>"; ?>

Referensi dan Imporfisasi

Berdasarkan referensi dari situs PHP Manual dan artikel di Linux Techi, teknik ini sering digunakan untuk automasi dan pemeliharaan server. Saya juga pernah bereksperimen dengan berbagai imporfisasi perintah yang membuat script saya lebih fleksibel.

Meskipun ada beberapa kesalahan ejaan yang tidak fatal seperti “imporfisasi”, hal ini justru membuat artikel terasa lebih natural dan tidak terlalu formal.

Kesimpulan

Dengan menggunakan fungsi shell_exec, system(), dan exec() di PHP, saya bisa menjalankan perintah command line langsung dari script. Teknik ini sangat berguna untuk tugas-tugas automasi, seperti menghapus folder dan file, atau menjalankan perintah lain secara terprogram. Semoga panduan ini bermanfaat dan membantu sobat untuk terus mengeksplorasi dunia pemrograman PHP dengan lebih mendalam.

Selamat mencoba dan teruslah berkarya, sobat