Anda di halaman 1dari 6

Installasi Nginx, PHP-cgi dan MySQL

di Windows
Nginx (di baca engine-x) merupakan server HTTP dan reverse proxy gratis berbasis
open-source berkemampuan tinggi, yang dapat juga digunakan sebagai proxy
IMAP/POP3. Perangkat lunak ini diciptakan oleh Igor Sysoev pada tahun 2002, dan
dirilis untuk pertama kalinya secara umum pada tahun 2004. Nginx yg katanya
terkenal ringan diperkirakan digunakan 7.65% (22.8juta) nama domain di seluruh
dunia. Sejatinya Nginx sebenarnya di peruntukkan untuk operasi system berbasis
open source yaitu Linux namun sekarang bisa di impletasikan ke Windows.

Lanjut kalu begitu, pertama download dulu nginx, disini Saya menggunakan
nginx yang bisa di download di sini dan sudah di pack oleh Kevin Worthington serta
sudah dicompile menggunakan cgywin sehingga bisa langsung dipake untuk
Windows karena jika kita mendownload dari situs resminya maka kita harus
mengkompilenya dulu dengan cgywin.
Kemudian instal nginx tersebut, secara default maka akan terinstal di c:\nginx setelah
selesai maka kita melanjutkan menginstall PHP, download disini, terserah Anda mau
mendownload yang mana, yang perlu di perhatikan adalah letak dari folder dimana
php di install. Sebagai contoh disini Saya meletakkan di c:\nginx\php.
Setelah itu kita akan menggabungkan nginx dengan php tadi, perlu diketahui bahwa
nginx hanya bisa dipasangkan dengan dengan php-cgi. Buka file konfigurasi nginx di
c:\nginx\conf\nginx.conf, edit seperti dibawah ini, pastikan sesuai dengan tempat
peletakan folder php sewaktu penginstalan.
?
1location ~ .php$ {
2 root
html;
3 fastcgi_pass
127.0.0.1:9000;
4 fastcgi_index index.php;
5 fastcgi_param SCRIPT_FILENAME c:/nginx/html/$fastcgi_script_name;
include
fastcgi_params;
6}
7
Setelah itu download runhiddenconsole, letakan di folder c:\nginx\conf , setelah itu
buka file start-nginx.bat difolder yg sama, edit seperti dibawah ini:
?
1 @ECHO OFF
2 c:\nginx\nginx.exe
RunHiddenConsole c:\nginx\php\php-cgi.exe -b 127.0.0.1:9000 -c
3 c:\nginx\php\php.ini
4 ping 127.0.0.1 -n 1>NUL
5 echo Starting nginx
6 echo .
echo .
7 echo .

8
ping 127.0.0.1 >NUL
9 EXIT
10
Selanjutnya install Mysql, caranya tidak perlu Saya terangkan disini karena sangat
mudah tinggal menggunakan jurus enter saja :). Setelah selesai silakan menjalankan
webserver nginx Anda. Perlu diketahui nginx tidak akan membaca file .htacces jadi
sebelum Anda beralih ke nginx perhatikan juga file .htacces Anda, namun Anda bisa
mengconvert file .htacces menggunakan converter online ini dan letakan hasilnya di
file konfigurasi nginx.

Nginx + PHP + MySQL on Windows in


6 minutes
November 7, 2010 by eksith
The last time I posted a tutorial on Nginx, there wasnt a native port of the server
available. Riez Opuz posted a link to his Xenstack project on that post that prompted

me to write the rest of what Ive been putting off. Its a good way to tweak the stack to
your own needs.
I tried to leave this as in 5 minutes, but then I remembered how long it would take
to download MySQL Even on broadband.
Kevin Worthington had very kindly provided a Cygwin build that ran on Windows,
however Nginx now has a Windows build that we can use and this time, we can add
MySQL to the list as well. To keep everything compatible, well be using the 32 bit
versions for all downloads.
Once youve also downloaded Nginx (0.8.53 at the time of this post), head on to the
PHP libraries and remember to download the Windows Libraries only (5.3.3 as of
today) and select the thread safe version. The first steps are the same with the
exception of the download link to MySQL and we need the no-install download.

Make sure to follow this directory structure!


Extract the Nginx files to C:\nginx
Extract PHP to C:\nginx\php
Extract MySQL to C:\nginx\mysql

First, lets configure MySQL


MySQL no-install is a freakin huge download so feel free to delete mysql-test,
Embedded, sql-bench and folders named debug once unzipped. If you want to
minimize the folder even more, you can optionally delete any .pdb files. This would
come in handy if you want to deploy the whole ensamble on a thumb drive or package
it for a demo application and are really penny-pinching the available storage space.
Once the cleanup is complete, copy my-medium.ini in C:\nginx\mysql\ into my.ini.
I think the medium configuration takes care of most uses and, for a moderately busy
site, it fares pretty well.
Always try to copy exising files before making changes instead of outright renaming
them. This way, if something goes wrong with the new configuration, we still have the
original handy to start over..
Open up the newly copied my.ini file and change the [client] block to match the
following.
[client]
#password
port
socket

= your_password
= 3306
= c:/nginx/mysql/tmp/mysql.sock

Note the Unix style forward-slashes.


Now in the [mysqld] block in the same file, change to match the following :

[mysqld]
port
= 3306
socket
= c:/nginx/mysql/tmp/mysql.sock
basedir
= c:/nginx/mysql
datadir
= c:/nginx/mysql/data
bind-address
= localhost
enable-named-pipe
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M

Now lets try and run our MySQL server


Start a new command line window
Note: If youre running Windows Vista or above with UAC enabled, you need to
right click on the command line link and select Run as administrator.. If you
get a message saying Install/Remove of the Service Denied! when trying to start
MySQL later on, then you probably have UAC running, so this step is very important.
Navigate to C:\nginx\mysql\bin\ and run :
mysqld --install-manual

There should be a slight delay followed by a Service successfully installed. We then


must run :
net start mysql

And if there are no errors noted, then Congratulations!


Before we proceed, we need to run some housekeeping operations. In the same
command line window, run :
mysqladmin -u root password newpassword

Where newpassword is your new MySQL root password. This is an important step
toward securing your installation.
Now that weve changed our root password enter the following :
mysql -u root -p

Which will give you a password prompt. Enter your newpassword created before.
Once youre logged in, youre at the MySQL console.

If you need to change your root password at a future date, run mysql as above type the
following :
update mysql.user set password=PASSWORD('new-newpassword') where
user='root';

Note that passwords are encoded before storage in the database, so we need to run the
PASSWORD function on our new-newpassword. Once thats done, be sure to run :
flush privileges;

Now we need to remove all the junk that came with the server.
Delete the test databases and anonymous users (Always remember the semicolon at
the end!) :
delete from mysql.user where user='root' and host!='localhost';
drop database test;
delete from mysql.db where db='test' or db='test\_%';

And finally flush privileges and quit :


flush privileges; quit;

Now if we need to, we can stop MySQL by running the following (in
C:\nginx\mysql\bin\ as an Administrator of course):
net stop mysql

And if we need to remove it from our services entirely, run the following :
mysqld --remove

Building PHP Webserver on Nginx with


PHP CGI
March 18, 2011 11:33 am by imkrisna Leave a Comment
Doesnt like the Apache webserver, nginx didnt have the auto-configuration feature
from PHP and library loading. The way to make nginx be a PHP webserver is passing
the request to PHP CGI. How?
The first step must be installing the nginx and php5 package. For this post im using
Ubuntu 10.04 LTS.

1apt-get update nginx


2apt-get update php5
Check your nginx installation with start the service:
1service nginx restart
2/etc/init.d/nginx restart
Now, if the nginx working, lets connect it to the PHP CGI. First, run the PHP CGI so
that the PHP listen at 127.0.0.1 with port 9000.
1/usr/bin/php-cgi -b 127.0.0.1:9000 &
After the CGI is running, go to nginx configuration and make a script pass to PHP
CGI.
01
02server
{
03
listen 80 default;
04
server_name _;
05
root
/var/www/nginx-default;
06
index
index.html index.php;
07
08
location ~ .php$
09
{
10
fastcgi_pass
127.0.0.1:9000;
11
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
12
fastcgi_param SCRIPT_FILENAME /var/www/nginx13
default$fastcgi_script_name;
14
}
15}
16

Share this:

Anda mungkin juga menyukai