Advertisements

Install dan Konfigurasi Nginx + php5 + Mysql dengan 1 Baris Perintah

Beberapa bulan yang lalu saya mencoba nginx untuk pertama kalinya setelah sekian lama berkutat dengan apache. Banyak orang yang merekomendasikan untuk menggunakan nginx karena stabil dan juga kemampuannya dalam mereduce penggunaan memori.

Install nginx relatif tidak sulit, namun bagian sulitnya adalah konfigurasi jika dibandingkan dengan apache. Untuk pengguna wordpress yang menggunakan permalink custom, nginx menjadi momok yang menjengkelkan karena tidak bisa langsung rewrite permalink, melainkan harus ditambahkan beberapa perintah dalam konfigurasi nginx.

Langkah Install dengan mudah :

  1. Unduh script install-nginx.sh disini
  2. Unzip install-nginx yang sudah diunduh tadi
  3. jalankan aplikasinya dengan perintah sudo bash install-nginx.sh atau dengan perintah ./install-nginx.sh
  4. Jika tidak bisa dijalankan, Anda bisa menambahkan akses x dengan perintah chmod +x install-nginx.sh
  5. Done….

FYI. Isi dari script install-nginx.sh diambil dari sini. User dan passwordnya masih mengikuti dari script, untuk alasan keamanan hendaknya Anda ganti user dan passwordnya pada script dengan menyunting script menggunakan editor nano, vi atau text editor lainnya. Berikut isi lengkap dari scriptnya :

#Sets up default LEMP Stack on Ubuntu (14.04x64) with Nginx, MySql 5.5, PHP-FPM 5.5
#CONFIGURATION
MYSQLPASS="passwordmysqldisini"
MYSQLDATABASE="namadatabasewordpress"
SERVERNAMEORIP="namadomaindariblogdisini"
#update everything
apt-get update
#install php, mysql, nginx
apt-get -y install nginx
#you may need to enter a password for mysql-server
sudo debconf-set-selections <<< "mysql-server mysql-server/root_password password ${MYSQLPASS}"
sudo debconf-set-selections <<< "mysql-server mysql-server/root_password_again password ${MYSQLPASS}"
sudo apt-get -y install mysql-server mysql-client
apt-get install -y php5-mysql php5-fpm php5-gd php5-cli
#configure phpfpm settings
sed -i "s/^;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/" /etc/php5/fpm/php.ini
sed -i "s/^;listen.owner = www-data/listen.owner = www-data/" /etc/php5/fpm/pool.d/www.conf
sed -i "s/^;listen.group = www-data/listen.group = www-data/" /etc/php5/fpm/pool.d/www.conf
sed -i "s/^;listen.mode = 0660/listen.mode = 0660/" /etc/php5/fpm/pool.d/www.conf
#configure nginx
#more advanced configuration options and plugin info available here: https://rtcamp.com/wordpress-nginx/tutorials/single-site/fastcgi-cache-with-purging/
mkdir /usr/share/nginx/cache
sed -i "s/^\tworker_connections 768;/\tworker_connections 1536;/" /etc/nginx/nginx.conf
sed -i "s/^\t#passenger_ruby \/usr\/bin\/ruby;/\t#passenger_ruby \/usr\/bin\/ruby;\n\n\tfastcgi_cache_path \/usr\/share\/nginx\/cache\/fcgi levels=1:2 keys_zone=microcache:10m max_size=1024m inactive=1h;/" /etc/nginx/nginx.conf
sed -i "s/^\tindex index.html index.htm;/\tindex index.php index.html index.htm;/" /etc/nginx/sites-available/default
sed -i "s/^\tserver_name localhost;/\tserver_name $SERVERNAMEORIP;/" /etc/nginx/sites-available/default
sed -i "s/^\tlocation \/ {/\n\tlocation ~ \\\.php$ {\n\t\ttry_files \$uri =404;\n\t\tfastcgi_split_path_info ^(.+\\\.php)(\/.+)\$;\n\t\tfastcgi_cache microcache;\n\t\tfastcgi_cache_key \$scheme\$host\$request_uri\$request_method;\n\t\tfastcgi_cache_valid 200 301 302 30s;\n\t\tfastcgi_cache_use_stale updating error timeout invalid_header http_500;\n\t\tfastcgi_pass_header Set-Cookie;\n\t\tfastcgi_pass_header Cookie;\n\t\tfastcgi_ignore_headers Cache-Control Expires Set-Cookie;\n\t\tfastcgi_pass unix:\/var\/run\/php5-fpm.sock;\n\t\tfastcgi_index index.php;\n\t\tinclude fastcgi_params;\n\t}\n\tlocation \/ {/" /etc/nginx/sites-available/default
#just restarting to make sure they have latest
service nginx restart
service mysql restart
service php5-fpm restart
##create MySql Database
mysql -uroot -p$MYSQLPASS -e "create database ${MYSQLDATABASE}"
cd /usr/share/nginx/html
#get WordPress latest
wget http://wordpress.org/latest.tar.gz
tar -xvzf latest.tar.gz
#move WordPress to web woot
mv /usr/share/nginx/html/wordpress/* /usr/share/nginx/html/
#cleanup folder
rm -rf wordpress

Install dan konfigurasi diatas masih konfigurasi standar dan belum masuk tahap optimisasi dan custom wordpress.

Advertisements

Latest Comments

    • ihsan
    • ihsan

Leave a Reply