GNU/Linux >> Belajar Linux >  >> Fedora

Menginstal Nginx Dengan PHP5 (Dan PHP-FPM) Dan Dukungan MySQL Di Fedora 19

Nginx (diucapkan "engine x") adalah server HTTP gratis, open-source, berkinerja tinggi. Nginx dikenal dengan stabilitasnya, rangkaian fitur yang kaya, konfigurasi sederhana, dan konsumsi sumber daya yang rendah. Tutorial ini menunjukkan bagaimana Anda dapat menginstal Nginx di server Fedora 19 dengan dukungan PHP5 (melalui PHP-FPM) dan dukungan MySQL.

Saya tidak memberikan jaminan apa pun bahwa ini akan berhasil untuk Anda!

1 Catatan Awal

Dalam tutorial ini saya menggunakan hostname server1.example.com dengan alamat IP 192.168.0.100. Setelan ini mungkin berbeda untuk Anda, jadi Anda harus menggantinya jika perlu.

2 Menginstal MySQL/MariaDB 5

Pertama kita install MySQL 5 seperti ini:

yum install mysql mysql-server

Kemudian kita membuat link startup sistem untuk MySQL (sehingga MySQL mulai secara otomatis setiap kali sistem boot) dan memulai server MySQL:

systemctl aktifkan mysqld.service
systemctl start mysqld.service

Sekarang periksa apakah jaringan diaktifkan. Jalankan

netstat -ketuk | grep mysql

Seharusnya menunjukkan sesuatu seperti ini:

[[email protected] ~]# netstat -tap | grep mysql
tcp       0      0 *:mysql                  *:*                    DENGARKAN     1116 ​​/>dilindungi][email saya]

Jika tidak, edit /etc/my.cnf dan beri komentar pada opsi lewati jaringan:

vi /etc/my.cnf
[...]#skip-networking[...]

dan restart server MySQL Anda:

systemctl restart mysqld.service

Jalankan

mysql_secure_installation

untuk menetapkan kata sandi untuk root pengguna (jika tidak, siapa pun dapat mengakses database MySQL Anda!):

[[email protected] ~]# mysql_secure_installation
/usr/bin/mysql_secure_installation: line 379: find_mysql_client: command not found

CATATAN: MENJALANKAN SEMUA BAGIAN DARI REKOMENDASI INI      SERVER IN PRODUKSI GUNAKAN! HARAP BACA SETIAP LANGKAH DENGAN SEKSAMA!

Untuk masuk ke MariaDB guna mengamankannya, kami memerlukan kata sandi
saat ini untuk pengguna root. Jika Anda baru menginstal MariaDB, dan
belum menyetel sandi root, sandi akan kosong,
jadi Anda cukup tekan enter di sini.

Enter sandi saat ini untuk root (enter for none): <-- ENTER
Oke, sandi berhasil digunakan, lanjutkan...

Menyetel sandi root memastikan bahwa tidak ada yang dapat masuk ke MariaDB
root pengguna tanpa otorisasi yang benar.

Tetapkan sandi root? [Y/n] <-- ENTER
Sandi baru: <-- yourrootsqlpassword
Masukkan kembali sandi baru: <-- yourrootsqlpassword
Sandi berhasil diperbarui!
Memuat ulang tabel hak istimewa. .
 ... Berhasil!


Secara default, penginstalan MariaDB memiliki pengguna anonim yang memungkinkan siapa saja
masuk ke MariaDB tanpa harus memiliki akun pengguna dibuat untuk
mereka. Ini dimaksudkan hanya untuk pengujian, dan untuk membuat pemasangan
menjadi sedikit lebih lancar. Anda harus menghapusnya sebelum berpindah ke 
lingkungan produksi.

Hapus pengguna anonim? [Y/n] <-- ENTER
 ... Berhasil!

Biasanya, root hanya diizinkan untuk terhubung dari 'localhost'. Ini
memastikan bahwa seseorang tidak dapat menebak kata sandi root dari jaringan.

Larang login root dari jarak jauh? [Y/n] <-- ENTER
 ... Berhasil!

Secara default, MariaDB dilengkapi dengan database bernama 'test' yang dapat
akses siapa saja. Ini juga dimaksudkan hanya untuk pengujian, dan harus dihapus
sebelum dipindahkan ke lingkungan produksi.

Hapus database pengujian dan akses ke sana? [Y/n] <-- MASUKKAN
 - Menghapus basis data pengujian...
 ... Berhasil!
 - Menghapus hak istimewa pada basis data pengujian...
 ... Berhasil !

Memuat ulang tabel hak istimewa akan memastikan bahwa semua perubahan yang dibuat sejauh ini
akan segera berlaku.

Muat ulang tabel hak istimewa sekarang? [Y/n] <-- ENTER
 ... Berhasil!

Membersihkan...

Selesai! Jika Anda telah menyelesaikan semua langkah di atas, penginstalan MariaDB
Anda sekarang seharusnya sudah aman.

Terima kasih telah menggunakan MariaDB!
[[email protected] ~]#

3 Menginstal Nginx

Nginx tersedia sebagai paket untuk Fedora 19 yang dapat kita instal sebagai berikut:

yum install nginx

Kemudian kami membuat tautan startup sistem untuk nginx dan memulainya:

systemctl aktifkan nginx.service
systemctl start nginx.service

Ketik alamat IP atau nama host server web Anda ke dalam browser (mis. http://192.168.0.100), dan Anda akan melihat halaman selamat datang nginx:

4 Menginstal PHP5

Kita dapat membuat PHP5 bekerja di nginx melalui PHP-FPM (PHP-FPM (FastCGI Process Manager) adalah implementasi PHP FastCGI alternatif dengan beberapa fitur tambahan yang berguna untuk situs dari berbagai ukuran, terutama situs yang lebih sibuk). Ada paket php-fpm di repositori resmi Fedora 19, oleh karena itu kita dapat menginstal php-fpm bersama dengan php-cli dan beberapa modul PHP5 seperti php-mysqlnd yang Anda perlukan jika Anda ingin menggunakan MySQL dari skrip PHP Anda:

yum install php-fpm php-cli php-mysqlnd php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-magickwand php-mbstring php-mcrypt php-mssql php-shout php-snmp php-soap php-tidy

Zend OPcache adalah cacher opcode PHP gratis dan terbuka untuk menyimpan dan mengoptimalkan kode perantara PHP. Ini mirip dengan cacher opcode PHP lainnya, seperti APC dan Xcache. Sangat disarankan untuk menginstal salah satu dari ini untuk mempercepat halaman PHP Anda. Karena Zend OPcache sekarang secara resmi disertakan dalam PHP 5.5, kami menggunakannya sebagai pengganti opcode cacher lainnya.

Zend OPcache dapat diinstal sebagai berikut:

yum install php-opcache

Untuk menghindari kesalahan seperti

[13-Nov-2011 22:13:16] PHP Peringatan:phpinfo():Tidak aman untuk mengandalkan pengaturan zona waktu sistem. Anda *diwajibkan* untuk menggunakan pengaturan date.timezone atau fungsi date_default_timezone_set(). Jika Anda menggunakan salah satu metode tersebut dan Anda masih mendapatkan peringatan ini, kemungkinan besar Anda salah mengeja pengidentifikasi zona waktu. Kami memilih 'Europe/Berlin' untuk 'CET/1.0/no DST' sebagai gantinya di /usr/share/nginx/html/info.php pada baris 2

... di /var/log/php-fpm/www-error.log ketika Anda memanggil skrip PHP di browser Anda, Anda harus membuka /etc/php.ini dan mengatur date.timezone:

vi /etc/php.ini
[...][Tanggal]; Mendefinisikan zona waktu default yang digunakan oleh fungsi tanggal; http://php.net/date.timezonedate.timezone ="Eropa/Berlin"[...]

Selanjutnya buat tautan startup sistem untuk php-fpm dan mulai:

systemctl aktifkan php-fpm.service
systemctl start php-fpm.service

PHP-FPM adalah proses daemon yang menjalankan server FastCGI pada port 9000.

5 Konfigurasi nginx

Konfigurasi nginx ada di /etc/nginx/nginx.conf yang kita buka sekarang:

vi /etc/nginx/nginx.conf

Konfigurasinya mudah dipahami (Anda dapat mempelajarinya lebih lanjut di sini:http://wiki.codemongers.com/NginxFullExample dan di sini:http://wiki.codemongers.com/NginxFullExample2)

Pertama (ini opsional) Anda dapat menambah jumlah proses pekerja dan menyetel keepalive_timeout ke nilai yang wajar:

[...]worker_processes 4;[...] keepalive_timeout 2;[...]

Host virtual didefinisikan dalam kontainer {} server. Vhost default didefinisikan lebih jauh di dalam file /etc/nginx/nginx.conf - mari kita ubah sebagai berikut:

vi /etc/nginx/nginx.conf
[...] server { dengarkan 80; nama server _; #charset koi8-r; #access_log /var/log/nginx/host.access.log main; lokasi / { root /usr/share/nginx/html; indeks index.php index.html index.htm; } # redirect halaman error server ke halaman statis /40x.html # error_page 404 /404.html; lokasi =/40x.html { root /usr/share/nginx/html; } # redirect halaman error server ke halaman statis /50x.html # error_page 500 502 503 504 /50x.html; lokasi =/50x.html { root /usr/share/nginx/html; } # proxy skrip PHP untuk mendengarkan Apache di 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # meneruskan skrip PHP ke server FastCGI yang mendengarkan di 127.0.0.1:9000 # lokasi ~ \.php$ { root /usr/share/nginx/html; try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; termasuk fastcgi_params; } # menolak akses ke file .htaccess, jika root dokumen Apache # setuju dengan salah satu # lokasi nginx ~ /\.ht { tolak semua; } }[...]

nama server _; menjadikannya vhost catchall default (tentu saja, Anda juga dapat menentukan nama host di sini seperti www.example.com).

Di lokasi / bagian, saya telah menambahkan index.php ke baris indeks. root /usr/share/nginx/html; berarti root dokumen adalah direktori /usr/share/nginx/html.

Bagian penting untuk PHP adalah lokasi ~ \.php$ {} bait. Batalkan komentar untuk mengaktifkannya. Ubah baris root ke root dokumen situs web (mis. root /usr/share/nginx/html;). Harap pastikan bahwa Anda mengubah baris fastcgi_param menjadi fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; karena jika tidak, juru bahasa PHP tidak akan menemukan skrip PHP yang Anda panggil di browser Anda.

Harap perhatikan bahwa saya telah menambahkan baris try_files $uri =404; untuk mencegah eksploitasi zero-day (lihat http://wiki.nginx.org/Pitfalls#Passing_Uncontrolled_Requests_to_PHP dan http://forum.nginx.org/read.php?2,88845,page=3). Atau, jika Anda tidak ingin menggunakan try_files $uri =404; baris, Anda dapat mengatur cgi.fix_pathinfo =0; di /etc/php5/fpm/php.ini (jangan lupa untuk memuat ulang PHP-FPM setelahnya).

Sekarang simpan file dan muat ulang nginx:

systemctl reload nginx.service

Sekarang buat file PHP berikut di root dokumen /usr/share/nginx/html...

vi /usr/share/nginx/html/info.php

Sekarang kita memanggil file itu di browser (mis. http://192.168.0.100/info.php):

Seperti yang Anda lihat, PHP5 bekerja, dan bekerja melalui FPM/FastCGI, seperti yang ditunjukkan pada baris Server API. Jika Anda menggulir lebih jauh ke bawah, Anda akan melihat semua modul yang sudah diaktifkan di PHP5, termasuk modul MySQL:

  • nginx:http://nginx.org/
  • nginx Wiki:http://wiki.nginx.org/
  • PHP:http://www.php.net/
  • PHP-FPM:http://php-fpm.org/
  • MySQL:http://www.mysql.com/
  • Fedora:http://fedoraproject.org/

Fedora
  1. Menginstal Nginx Dengan PHP5 (Dan PHP-FPM) Dan Dukungan MySQL (LEMP) Di Ubuntu 14.04 LTS

  2. Menginstal Lighttpd Dengan PHP5 (PHP-FPM) Dan Dukungan MySQL Di Ubuntu 14.04LTS

  3. Cara Instal Nginx Dengan PHP-FPM Dan MySQL Di Fedora 16 “Verne”

  1. Menginstal Apache2 Dengan PHP5 Dan Dukungan MySQL Pada OpenSUSE 13.1 (LAMP)

  2. Menginstal Apache 2 Dengan PHP5 Dan Dukungan MySQL Pada Fedora 21 (LAMP)

  3. Menginstal Lighttpd Dengan PHP5 Dan Dukungan MySQL Di Ubuntu 10.04

  1. Menginstal Lighttpd Dengan PHP5 (PHP-FPM) Dan Dukungan MySQL Di Ubuntu 12.04

  2. Menginstal Nginx Dengan PHP5 (Dan PHP-FPM) Dan Dukungan MySQL (LEMP) Di Ubuntu 12.04 LTS

  3. Menginstal Nginx Dengan PHP5 (Dan PHP-FPM) Dan Dukungan MySQL (LEMP) Di Ubuntu 13.04