Instalasi Lighttpd, PHP5 dan MySQL pada openSUSE 11.4
Lighttpd adalah aplikasi web server yang di desain untuk kebutuhan akses yang cepat dan aman. Dalam tutorial ini diberikan bagaimana menginstal Lighttpd pada openSUSE 11.4 dengan PHP5 dan MySQL.
1. Menginstal MySQL 5
Pertama kita menginstal MySQL 5 sebagai berikut
yast2 -i mysql mysql-client mysql-community-server
kemudian buat links system startup untuk MySQL , agar MySQL secara otomatis start pada saat booting sistem
chkconfig -f --add mysql
/etc/init.d/mysql start
Untuk menjalankan instalasi MySQL secara aman, jalankan perintah
mysql_secure_installation
sekarang kita akan ditanyai beberapa pertanyaan :
server1:~#mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MySQL to secure it, we'll need the current
password for the root user. If you've just installed MySQL, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none): <-- ENTER
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.
Set root password? [Y/n] <-- Y
New password: <-- fill in your desired MySQL root password
Re-enter new password: <-- confirm that password
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] <-- Y
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] <-- Y
... Success!
By default, MySQL comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] <-- Y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] <-- Y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MySQL
installation should now be secure.
Thanks for using MySQL!
server1:~ #
Paket Lighttpd tersedia dalam paket openSUSE, sehingga dapat diinstall dengan mudah menggunakan perintah :
yast2 -i lighttpd
kemudian buat startup link untuk lighttpd seperti pada saat kita membuatnya pada mysql
chkconfig -f --add lighttpd
/etc/init.d/lighttpd start
Sekarang kita bisa server kita secara langsung melalui web browser dengan alamat http://192.168.0.100 dan seharusnya terlihat lighttpd menampilkan sebuah halaman. Jika yang terlihat error 404 maka itu berarti sudah berjalan dengan semestinya karena belum ada file index untuk dokumen root lighttpd.
Secara defaults, dokumen root lighttpd pada openSUSE terletak pada direktori /srv/www/htdocs dan file konfigurasinya terletak pada /etc/lighttpd/lighttpd.conf
3. Menginstal PHP5
Kita bisa membuat PHP5 bekerja dalam Lighttpd melalui FastCGI. Jadi kita dapat menginstalnya dengan menggunakan perintah
yast2 -i php5-fastcgi
4. Mengkonfigurasi Lighttpd dan PHP5
untuk meng-enable PHP5 dalam Lighttpd kita harus mengubah tiga file, yaitu /etc/php5/fastcgi/php.ini, /etc/lighttpd/modules.conf dan /etc/lighttpd/conf.d/fastcgi.conf. Pertama buka file /etc/php5/fastcgi/php.ini dan uncomment baris cgi.fic_pathingo=1 yang berada di tengah dari file tersebut
vi /etc/php5/fastcgi/php.ini
jadikan seperti ini
[...]
; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's
; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok
; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting
; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting
; of zero causes PHP to behave as before. Default is 1. You should fix your scripts
; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
; http://php.net/cgi.fix-pathinfo
cgi.fix_pathinfo=1
[...]
Jika mendapat pesan You do not have a valid vim binary package installed. Please install either “vim”, “vim-enhanced” or “vim”. Itu berarti editor vim velum terinstal, jalankan saja perintah berikut untuk menginstalnya
yast2 -i vim
dan ulangi lagi langkah diatas untuk konfigurasi php.ini
Setelah file php.ini selesai di edit sekarang kita mengedit file /etc/lighttpd/modules.conf dan uncomment baris include “conf.d/fastcgi.conf”
vi /etc/lighttpd/modules.conf
sehingga menjadi seperti ini
[...]
##
## FastCGI (mod_fastcgi)
##
include "conf.d/fastcgi.conf"
[...]
Terakhir kita buka /etc/lighttpd/conf.d/fastcgi.conf dan pastian mengandung baris server.modules += ( “mod_fastcgi”); dan kita keluarkan komentar untuk fastcgi.server
vi /etc/lighttpd/conf.d/fastcgi.conf
dan seharusnya menjadi
#######################################################################
##
## FastCGI Module
## ---------------
##
## http://www.lighttpd.net/documentation/fastcgi.html
##
server.modules += ( "mod_fastcgi" )
##
## PHP Example
## For PHP don't forget to set cgi.fix_pathinfo = 1 in the php.ini.
##
## The number of php processes you will get can be easily calculated:
##
## num-procs = max-procs * ( 1 + PHP_FCGI_CHILDREN )
##
## for the php-num-procs example it means you will get 17*5 = 85 php
## processes. you always should need this high number for your very
## busy sites. And if you have a lot of RAM. :)
##
fastcgi.server = ( ".php" =>
( "php-local" =>
(
"socket" => socket_dir + "/php-fastcgi-1.socket",
"bin-path" => server_root + "/cgi-bin/php5",
"max-procs" => 1,
"broken-scriptfilename" => "enable",
)
),
( "php-tcp" =>
(
"host" => "127.0.0.1",
"port" => 9999,
"check-local" => "disable",
"broken-scriptfilename" => "enable",
)
),
( "php-num-procs" =>
(
"socket" => socket_dir + "/php-fastcgi-2.socket",
"bin-path" => server_root + "/cgi-bin/php5",
"bin-environment" => (
"PHP_FCGI_CHILDREN" => "16",
"PHP_FCGI_MAX_REQUESTS" => "10000",
),
"max-procs" => 5,
"broken-scriptfilename" => "enable",
)
),
)
[...]
Kemudian restart lighttpd nya
/etc/init.d/lighttpd restart
5. Testing PHP5
Dokumen root untuk default website adalah /srv/www/htdocs. Sekarang kita mencoba membuat skrip php misalnya info.php pada direktori tersebut dan mencoba memanggilnya melalui web browser.
vi /srv/www/htdocs/info.php
Buatlah skrip sederhana sebagai berikut
kemudian lihat pada browser dengan mengakses ip server anda, misalnya http://192.168.0.100/info.php, dan seharusnya tampil informasi seperti ini
Jika sudah tampak hasil seperti diatas maka PHP sudah bekerja dengan baik, akan tetapi belum mendapat support database MySQL.
6. Menginstal support MySQL untuk PHP5
Untuk mendapatkan support MySQL untuk PHP5, kita bisa menginstal paket php5-mysql. Akan tetapi modul-modul PHP5 yang lain yang mungkin diperlukan untuk aplikasi sebaiknya diinstal juga.
Jalankan perintah
yast2 -i php5-mysql php5-bcmath php5-bz2 php5-calendar php5-ctype php5-curl php5-dom php5-ftp php5-gd php5-gettext php5-gmp php5-iconv php5-imap php5-ldap php5-mbstring php5-mcrypt php5-odbc php5-openssl php5-pcntl php5-pgsql php5-posix php5-shmop php5-snmp php5-soap php5-sockets php5-sqlite php5-sysvsem php5-tokenizer php5-wddx php5-xmlrpc php5-xsl php5-zlib php5-exif php5-pear php5-sysvmsg php5-sysvshm
kemudian restart lighttpd
/etc/init.d/lighttpd restart
Sekarang reload web browser http://192.168.0.100/info.php. Seharusnya sekarang anda menemukan banyak modul disana, termasuk modul-modul MySQL
click reference