GNU/Linux >> Belajar Linux >  >> Ubuntu

Menginstal Nginx Dengan PHP5 Dan Dukungan MySQL Di Ubuntu 8.10

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 Ubuntu 8.10 dengan dukungan PHP5 (melalui FastCGI) dan dukungan MySQL.

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 5.0

Untuk menginstal MySQL, kami menjalankan

apt-get install mysql-server mysql-client

Anda akan diminta untuk memberikan kata sandi untuk pengguna root MySQL - kata sandi ini berlaku untuk pengguna [dilindungi email] serta [dilindungi email], jadi kami tidak perlu menentukan kata sandi root MySQL secara manual nanti:

Kata sandi baru untuk pengguna "root" MySQL:<-- yourrootsqlpassword
Ulangi kata sandi untuk pengguna "root" MySQL:<-- yourrootsqlpassword

3 Menginstal Nginx

Nginx tersedia sebagai paket untuk Ubuntu 8.10 yang dapat kita instal sebagai berikut:

apt-get install nginx

Mulai nginx setelahnya:

/etc/init.d/nginx start

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:

Untuk membuat nginx mulai saat boot, jalankan

update-rc.d nginx defaults

4 Menginstal PHP5

Kita dapat membuat PHP5 bekerja di nginx melalui FastCGI. Untungnya, Ubuntu menyediakan paket PHP5 berkemampuan FastCGI yang kami instal seperti ini (bersama dengan beberapa modul PHP5 seperti php5-mysql yang Anda perlukan jika Anda ingin menggunakan MySQL dari skrip PHP Anda):

apt-get install php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

Kemudian buka /etc/php5/cgi/php.ini dan tambahkan baris cgi.fix_pathinfo =1 tepat di akhir file:

vi /etc/php5/cgi/php.ini
[...]
cgi.fix_pathinfo = 1

Tidak ada paket daemon FastCGI yang berdiri sendiri untuk Ubuntu, oleh karena itu kami menggunakan program spawn-fcgi dari lighttpd. Kami menginstal lighttpd sebagai berikut:

apt-get install lighttpd

Anda akan melihat pesan kesalahan yang mengatakan bahwa lighttpd tidak dapat memulai karena port 80 sudah digunakan. Begitulah seharusnya karena nginx sudah mendengarkan pada port 80. Jalankan

update-rc.d -f lighttpd remove

sehingga lighttpd tidak akan mulai saat boot.

Kami telah menginstal lighttpd karena kami hanya membutuhkan satu program yang disertakan dengan paket, /usr/bin/spawn-fcgi, yang dapat kami gunakan untuk memulai proses FastCGI. Lihat di

spawn-fcgi --help

untuk mempelajari lebih lanjut tentangnya.

Untuk memulai mendengarkan daemon FastCGI PHP pada port 9000 di localhost dan berjalan sebagai pengguna dan grup www-data, kami menjalankan perintah berikut:

/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid

Tentu saja, Anda tidak ingin mengetikkan perintah itu secara manual setiap kali Anda mem-boot sistem, jadi agar sistem menjalankan perintah secara otomatis saat boot, buka /etc/rc.local...

vi /etc/rc.local

... dan tambahkan perintah di akhir file (sebelum baris keluar):

[...]
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid
[...]

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) tingkatkan jumlah proses pekerja dan setel keepalive_timeout ke nilai yang wajar:

[...]
worker_processes  5;
[...]
    keepalive_timeout  2;
[...]

Host virtual didefinisikan dalam kontainer {} server. Vhost default didefinisikan dalam file /etc/nginx/sites-available/default - mari kita ubah sebagai berikut:

vi /etc/nginx/sites-available/default
[...]
server {
        listen   80;
        server_name  _;

        access_log  /var/log/nginx/localhost.access.log;

        location / {
                root   /var/www/nginx-default;
                index  index.php index.html index.htm;
        }

        location /doc {
                root   /usr/share;
                autoindex on;
                allow 127.0.0.1;
                deny all;
        }

        location /images {
                root   /usr/share;
                autoindex on;
        }

        #error_page  404  /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
                root   /var/www/nginx-default;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
                #proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  /var/www/nginx-default$fastcgi_script_name;
                include        fastcgi_params;
        }

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        location ~ /\.ht {
                deny  all;
        }
}
[...]

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 /var/www/nginx-default; berarti root dokumen adalah direktori /var/www/nginx-default.

Bagian penting untuk PHP adalah lokasi ~ \.php$ {} bait. Batalkan komentar untuk mengaktifkannya. Harap pastikan bahwa Anda mengubah baris fastcgi_param menjadi fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name; (ganti /var/www/nginx-default dengan root dokumen vhost Anda) karena jika tidak, interpreter PHP tidak akan menemukan skrip PHP yang Anda panggil di browser Anda.

Pastikan ada spasi antara include dan fastcgi_params; - dalam file default ini ditulis sebagai satu kata yang merupakan bug.

Sekarang simpan file dan mulai ulang nginx:

/etc/init.d/nginx restart

Sekarang buat file PHP berikut di root dokumen /var/www/nginx-default:

vi /var/www/nginx-default/info.php
<?php
phpinfo();
?>

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

Seperti yang Anda lihat, PHP5 bekerja, dan bekerja melalui 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.net/
  • nginx Wiki:http://wiki.codemongers.com/Main
  • PHP:http://www.php.net
  • MySQL:http://www.mysql.com
  • Ubuntu:http://www.ubuntu.com/

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

  2. Menginstal Apache2 Dengan PHP5 Dan Dukungan MySQL Di Ubuntu 14.04LTS (LAMP)

  3. Cara Instal Nginx Dengan PHP5 Dan MySQL Di Ubuntu 11.10

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

  2. Menginstal Apache2 Dengan PHP5 Dan Dukungan MySQL Pada OpenSUSE 13.1 (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