PHP adalah bahasa scripting tujuan umum diarahkan pengembangan web. Ini adalah salah satu bahasa pemrograman populer untuk web. Alat populer seperti WordPress dikodekan menggunakan php. Perusahaan besar seperti Facebook juga banyak menggunakan php.
Nginx adalah server web yang juga dapat digunakan sebagai proxy terbalik, penyeimbang beban, proxy surat, dan cache HTTP. Ini dimulai sebagai server web yang dirancang untuk kinerja dan stabilitas maksimum. Nginx semakin populer sejak dirilis karena penggunaan sumber dayanya yang ringan dan kemampuannya untuk menskalakan dengan mudah pada perangkat keras minimal. Nginx unggul dalam menyajikan konten statis dengan cepat dan dirancang untuk meneruskan permintaan dinamis ke perangkat lunak lain yang lebih cocok untuk tujuan tersebut.
Konten Terkait
- Cara menginstal dan menyiapkan PHP dan Apache (LAMP stack) di OpenSUSE Leap 15.3
- Cara Menginstal tumpukan Apache PHP 7.4 (LAMP) di Rocky Linux/Centos 8
- Cara menginstal dan menyiapkan PHP dan Apache (LAMP stack) di Ubuntu 20.04
- Cara Menginstal dan menyiapkan PHP dan Nginx (LEMP) di Ubuntu 20.04
- Cara menginstal dan menyiapkan PHP dan Apache (LAMP stack) di Debian 11
- Cara Menginstal dan menyiapkan PHP dan Nginx (LEMP) di Debian 11
- Cara Menginstal dan mengatur PHP dan Nginx (LEMP) di Rocky Linux/Alma Linux 8
Daftar Isi
- Memastikan bahwa server selalu mutakhir
- Menginstal PHP di OpenSUSE Leap 15.3
- Menginstal Nginx di OpenSUSE Leap 15.3
- Menginstal php-fpm di OpenSUSE Leap 15.3
- Membuat situs sederhana dan mengonfigurasi host virtual
- Menguji konfigurasi
1. Memastikan bahwa server sudah diperbarui
Sebelum melanjutkan, itu selalu merupakan praktik yang baik untuk memastikan bahwa server up to date. Gunakan perintah ini untuk mencapainya
sudo zypper refresh
sudo zypper update -y
2. Menginstal PHP di OpenSUSE Leap 15.3
PHP tersedia di repo OpenSUSE default. Versi terbaru PHP pada saat blog ini ditulis adalah PHP 7.4.
Instal PHP dan beberapa paket umum menggunakan perintah ini:
sudo zypper install -y \
php \
php-cli
Periksa versi PHP yang diinstal
~> zypper info php7
Repository 'Update repository with updates from SUSE Linux Enterprise 15' is out-of-date. You can run 'zypper refresh' as root to update it.
Loading repository data...
Reading installed packages...
Information for package php7:
-----------------------------
Repository : Update repository with updates from SUSE Linux Enterprise 15
Name : php7
Version : 7.4.6-3.29.1
Arch : x86_64
Vendor : SUSE LLC <https://www.suse.com/>
Installed Size : 10.3 MiB
Installed : Yes
Status : up-to-date
Source package : php7-7.4.6-3.29.1.src
Summary : Interpreter for the PHP scripting language version 7
Description :
PHP is a server-side HTML embedded scripting language designed
primarily for web development but also used as a general-purpose
programming language.
This package contains the standard implementation of PHP, namely Zend
PHP. Included are the PHP command-line binary and the configuration
file (php.ini). This package must be installed in order to use PHP.
Additionally, extension modules and server modules (e.g. for Apache)
may be installed.
Additional documentation is available in package php-doc.
Periksa versi php yang diinstal menggunakan perintah ini:
~> php -v
PHP 7.4.6 (cli) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
3. Menginstal Nginx di OpenSUSE Leap 15.3
Kami akan menggunakan Nginx untuk menyajikan konten PHP. Nginx, sebagai server web berkinerja tinggi yang stabil dan dengan konsumsi sumber daya yang sangat rendah, sangat cocok untuk PHP-FPM. Nginx memiliki arsitektur asinkron yang jauh lebih skalabel, berdasarkan peristiwa.
Nginx tersedia di repo UpenSUSE default. Instal menggunakan perintah ini:
sudo zypper install -y nginx
Konfirmasi nginx yang diinstal
~> zypper info nginx
Loading repository data...
Reading installed packages...
Information for package nginx:
------------------------------
Repository : Main Repository
Name : nginx
Version : 1.19.8-3.6.1
Arch : x86_64
Vendor : SUSE LLC <https://www.suse.com/>
Installed Size : 2.2 MiB
Installed : Yes
Status : up-to-date
Source package : nginx-1.19.8-3.6.1.src
Summary : A HTTP server and IMAP/POP3 proxy server
Description :
nginx [engine x] is a HTTP server and IMAP/POP3 proxy server written by Igor Sysoev.
It has been running on many heavily loaded Russian sites for more than two years.
Layanan Nginx yang diinstal tidak dimulai secara default. Untuk memulai layanan, gunakan perintah ini:
sudo systemctl start nginx
Konfirmasikan bahwa layanan aktif dan berjalan menggunakan perintah ini:
~> sudo systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2021-12-20 18:56:15 UTC; 36s ago
Process: 31740 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Main PID: 31741 (nginx)
Tasks: 2 (limit: 4587)
CGroup: /system.slice/nginx.service
├─31741 nginx: master process /usr/sbin/nginx -g daemon off;
└─31742 nginx: worker process
Dec 20 18:56:15 ip-10-2-40-44 systemd[1]: Starting The nginx HTTP and reverse proxy server...
Dec 20 18:56:15 ip-10-2-40-44 nginx[31740]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Dec 20 18:56:15 ip-10-2-40-44 nginx[31740]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Dec 20 18:56:15 ip-10-2-40-44 systemd[1]: Started The nginx HTTP and reverse proxy server.
Untuk mengaktifkan layanan saat boot, gunakan perintah ini:
sudo systemctl enable nginx
4. Menginstal PHP FPM di OpenSUSE Leap 15.3
PHP-FPM (singkatan dari FastCGI Process Manager) adalah implementasi FastCGI PHP (Hypertext Processor) alternatif yang sangat populer. PHP-FPM adalah alternatif implementasi PHP FastCGI yang paling populer. Ini memiliki fitur tambahan yang sangat berguna untuk situs web dengan lalu lintas tinggi. Saat menggunakan Nginx dengan PHP-FPM, kinerja pada tingkat konsumsi memori ditingkatkan.
PHP berjalan sebagai layanan terpisah saat menggunakan PHP-FPM. Dengan menggunakan versi PHP ini sebagai penerjemah bahasa, permintaan diproses melalui soket TCP/IP; sehingga web server Nginx hanya menangani permintaan HTTP dan PHP-FPM menginterpretasikan kode PHP. Fakta memiliki dua layanan terpisah adalah kunci untuk meningkatkan efisiensi.
Instal php-fpm menggunakan perintah ini:
sudo zypper install -y php-fpm
Salin file konfigurasi default
sudo cp /etc/php7/fpm/php-fpm.conf.default /etc/php7/fpm/php-fpm.conf
sudo cp /etc/php7/fpm/php-fpm.d/www.conf.default /etc/php7/fpm/php-fpm.d/www.conf
Layanan tidak akan dimulai secara default. Mulai php-fpm menggunakan perintah ini:
sudo systemctl start php-fpm
Periksa statusnya menggunakan perintah ini:
~> sudo systemctl status php-fpm
● php-fpm.service - The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2021-12-20 08:56:16 UTC; 21s ago
Main PID: 24608 (php-fpm)
Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
Tasks: 3 (limit: 4587)
CGroup: /system.slice/php-fpm.service
├─24608 php-fpm: master process (/etc/php7/fpm/php-fpm.conf)
├─24609 php-fpm: pool www
└─24610 php-fpm: pool www
Dec 20 08:56:16 ip-10-2-40-44 systemd[1]: Starting The PHP FastCGI Process Manager...
Dec 20 08:56:16 ip-10-2-40-44 systemd[1]: Started The PHP FastCGI Process Manager.
Untuk mengaktifkan php-fpm saat boot, gunakan perintah ini:
sudo systemctl enable php-fpm
5. Membuat situs sederhana dan mengonfigurasi virtual host
Nginx memungkinkan Anda untuk melayani beberapa situs menggunakan virtual host. Konsep host virtual memungkinkan lebih dari satu situs Web pada satu sistem atau server Web. Server dibedakan berdasarkan nama hostnya. Pengunjung ke situs Web dirutekan dengan nama host atau alamat IP ke host virtual yang benar. Hosting virtual memungkinkan perusahaan berbagi satu server untuk masing-masing memiliki nama domain sendiri.
Dalam contoh ini, kami akan menggunakan domain site1.citizix.com untuk virtual host tetapi bebas menggunakan domain pilihan Anda. Harap dicatat bahwa DNS untuk domain yang akan digunakan harus sudah dikonfigurasi untuk menunjuk ke alamat IP server. Konfirmasikan dengan:
dig -t A site1.citizix.com
Membuat direktori dan menambahkan konten sampel
Halaman default nginx dikonfigurasi sebagai host virtual default yang menyajikan konten dari /var/www/html
. Ini adalah praktik terbaik untuk membuat direktori situs Anda di /var/www
direktori karena ini adalah praktik terbaik untuk melayani dari sana.
Mari buat direktori untuk situs kita dengan perintah berikut:
sudo mkdir /var/www/site1.citizix.com
Mari kita buat index.php
yang sederhana halaman untuk melayani dari situs kami. Anda perlu menginstal vim agar ini berfungsi, jika tidak gunakan perintah ini:
sudo zypper install -y vim
Edit filenya:
sudo vim /var/www/site1.citizix.com/index.php
Tambahkan konten ke file:
<?php phpinfo(); ?>
Membuat host virtual (Blok server)
Blok server Nginx dapat digunakan untuk merangkum detail konfigurasi dan menghosting lebih dari satu domain di satu server. Kami akan membuat host virtual untuk situs kami (site1.citizix.com).
Konfigurasi virtual host Nginx disimpan di direktori /etc/nginx/conf.d/
. Mari buat konfigurasi untuk situs kita:
sudo vim /etc/nginx/conf.d/site1.citizix.com.conf
Tambahkan konten berikut
server {
listen 80;
server_tokens off;
client_max_body_size 100M;
server_name site1.citizix.com;
access_log /var/log/nginx/site1.citizix.com.log;
error_log /var/log/nginx/site1.citizix.com.log;
root /var/www/site1.citizix.com;
index index.php;
if ($host !~* ^(site1.citizix.com)$) {
return 444;
}
location / {
proxy_read_timeout 600;
proxy_connect_timeout 600;
proxy_send_timeout 600;
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/run/php/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Mari kita restart layanan nginx dan php-fpm agar konfigurasi dapat diterapkan
sudo systemctl restart php-fpm
sudo systemctl restart nginx
6. Menguji konfigurasi
Untuk menguji konfigurasi, buka browser Anda dan muat domain yang Anda siapkan. Dalam kasus saya ini adalah http://site1.citizix.com. Anda akan melihat halaman info php.
Jika Anda belum mengonfigurasi pengaturan DNS Anda atau hanya tidak ingin situs tersebut ditayangkan, Anda dapat memodifikasi file host komputer Anda. Untuk melakukannya, gunakan perintah berikut di CLI komputer lokal Anda
sudo vim /etc/hosts
Kemudian, tambahkan alamat IP server Anda yang sebenarnya diikuti dengan nama domain yang Anda konfigurasikan, misalnya:
# Virtual Hosts Local Test
10.2.11.11 site1.citizix.com
Sekarang Anda seharusnya dapat menyimpan file dan mengaksesnya dari dalam browser web.
Kesimpulan
Host virtual Nginx atau server
blok adalah cara yang bagus untuk menambahkan situs web tambahan ke server asal yang sama. Jumlah kemungkinan konfigurasi untuk situs tertentu hampir tidak terbatas saat Anda mulai memodifikasi file konfigurasi host virtual agar sesuai dengan kebutuhan spesifik situs Anda.
Dalam panduan ini kami mempelajari cara menyiapkan host virtual untuk menyajikan konten php di OpenSUSE Leap 15.3.