[NginX] Redirect subfolder ke subdomain

Ada masa di mana anda mahu menggunakan subdomain kerana lebih kemas dan mudah berbanding subfolder. Oleh sebab ramai pengguna sudah terbiasa mengakses subfolder tersebut, anda mengalami kesulitan untuk memindahkan mereka ke subdomain.

Dalam contoh ini, saya akan memindahkan subfokder admin ke subdomain admin.example.com. Di dalam konfigurasi NginX anda, tambahkan

location ^~ /admin/ {
    rewrite ^/admin/(.*) $scheme://admin.example.com/$1 permanent;
}

Cara memasang mcrypt di dalam PHP 7.2

Mungkin ada di antara anda yang tahu bahawa modul mcrypt telah dibuang secara kekal daripada PHP 7.2 kerana moduk tersebut tidak mempunyai sebarang pembangunan lebih daripada 10 tahun. Hal ini agak menyusahkan bagi pengguna yang memerlukan mcrypt, tetapi harus dilakukan bagi mengekalkan kestabilan PHP.

Saya menggunakan Nginx sebagai panduan dan sekiranya anda menggunakan Apache, mungkin ada sedikit langkah berbeza.

Pertama, anda harus pastikan anda sedang menggunakan PHP 7.2.

$ php -v

Pasangkan beberapa pakej yang diperlukan untuk compile modul mcrypt, lalu pasang mcrypt.

$ sudo apt -y install gcc make autoconf libc-dev pkg-config php-pear php7.2-dev
$ sudo apt -y install libmcrypt-dev
$ sudo pecl install mcrypt-1.0.1

Apabila anda dipaparkan dengan pilihan seperti ini:

libmcrypt prefix? [autodetect] :

Tekan [ENTER].

Setelah selesai, akan terpapar mesej seperti ini

...
Build process completed successfully
Installing '/usr/lib/php/20170718/mcrypt.so'    ---->   this is our path to mcrypt extension lib
install ok: channel://pecl.php.net/mcrypt-1.0.1
configuration option "php_ini" is not set to php.ini location
You should add "extension=mcrypt.so" to php.ini

Kemudian anda perlu membuat konfigurasi di dalam PHP
Untuk php-cli:

$ sudo bash -c "echo extension=/usr/lib/php/20170718/mcrypt.so > /etc/php/7.2/cli/conf.d/mcrypt.ini"

Untuk php-fpm:

$ sudo bash -c "echo extension=/usr/lib/php/20170718/mcrypt.so > /etc/php/7.2/fpm/conf.d/mcrypt.ini"

Apabila selesai, sahkan mcrypt telah terpasang

php -i | grep "mcrypt"

Anda seharusnya akan melihat paparan seperti ini

/etc/php/7.2/cli/conf.d/mcrypt.ini
Registered Stream Filters => zlib.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, convert.iconv.*, mcrypt.*, mdecrypt.*
mcrypt
mcrypt support => enabled
mcrypt_filter support => enabled
mcrypt.algorithms_dir => no value => no value
mcrypt.modes_dir => no value => no value

Konfigurasi Nginx untuk Rapidleech Berserta Password

Rapidleech adalah satu program PHP yang amat berguna. Rapidleech memudahkan proses muat turun dari beratus laman filehosting.

Bagi pengguna Nginx, cara memasangnya agak berbeza berbanding Apache. Saya andaikan anda telahpun memuat turun source Rapidleech daripada Github.

Pasang pakej yang diperlu untuk mencipta .htpasswd

$ sudo apt update
$ sudo apt install apache2-utils

Cipta fail password (.htpasswd)

$ sudo htpasswd -c /etc/nginx/.htpasswd rapid
  • Gantikan rapid kepada username yang anda mahukan.

Tambahkan kod di bawah ke dalam konfigurasi Nginx

location ^~ /rap1d {
    auth_basic "Ding Dong Bell";
    auth_basic_user_file <strong>/etc/nginx/.htpasswd</strong>;
    location ~ .php { 
        fastcgi_pass unix:/run/php/php7.1-fpm.sock;
        include snippets/fastcgi-php.conf;
    } 
}
  • Ubah rap1d kepada lokasi dimana anda menyimpan skrip PHP Rapidleech.

Kemudian reload Nginx

$ sudo systemctl reload nginx