YOMEDIA
Cài đặt Lighttpd với PHP5 và MySQl trên OpenSUSE 11
Chia sẻ: Abcdef_43 Abcdef_43
| Ngày:
| Loại File: PDF
| Số trang:9
84
lượt xem
4
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
Lighttpd hoạt động nhanh, ổn định và bảo mật, tuân thủ theo tiêu chuẩn máy chủ được thiết kế với môi trường có tần suất hoạt động cao. Bài viết này sẽ trình bày cách cài đặt Lighttpd trên OpenSUSE 11 hỗ trợ PHP5 (thông qua FastCGI) và MySQL.. 1 Lưu ý sơ bộ Trong bài viết này tôi sử dụng hostname server1.example.com với địa chỉ IP 192.168.0.100. Cấu hình này có thể khác với của bạn, vì thế bạn cần thay thế nó cho phù hợp. 2 Cài đặt MySQL 5.0 Đầu tiên ta cài đặt MySQL như sau:...
AMBIENT/
Chủ đề:
Nội dung Text: Cài đặt Lighttpd với PHP5 và MySQl trên OpenSUSE 11
- Cài đặt Lighttpd với PHP5 và MySQl trên OpenSUSE 11
Lighttpd hoạt động nhanh, ổn định và bảo mật, tuân thủ theo ti êu chuẩn máy
chủ được thiết kế với môi tr ường có tần suất hoạt động cao. Bài viết này sẽ
trình bày cách cài đặt Lighttpd trên OpenSUSE 11 hỗ trợ PHP5 (thông qua
FastCGI) và MySQL..
1 Lưu ý sơ bộ
Trong bài viết này tôi sử dụng hostname server1.example.com với địa chỉ IP
192.168.0.100. Cấu hình này có thể khác với của bạn, vì thế bạn cần thay thế
nó cho phù hợp.
2 Cài đặt MySQL 5.0
Đầu tiên ta cài đặt MySQL như sau:
$ yast2 -i mysql mysql-client
Tiếp đso ta tạo li ên kết khởi động cùng hệ thống cho MySQL (để MySQL tự
khởi động bất cứ khi nào hệ thống khởi động) và khởi động MySQL :
$ chkconfig --add mysql
$ /etc/init.d/mysql start
Bây giờ hãy kiểm tra mạng đã được bật. Chạy :
$ netstat -tap | grep mysql
Kết quả trả về có dạng giống nh ư sau:
server1:~ # netstat -tap | grep mysql
tcp 0 0 *:mysql *:* LISTEN 8566/mysqld
server1:~ #
Nếu bạn không nhận được kết quả trả về như vậy hãy sửa lại tập tin
/etc/my.cnf, bỏ comment ở tùy chọn skip-networking:
- $ vi /etc/my.cnf
[...]
#skip-networking
[...]
và khởi động lại MySQL :
/etc/init.d/mysql restart
Chạy :
mysqladmin -u root password yourrootsqlpassword
để đặt mật khẩu cho t ài khoản root@localhost.
Như bạn đã thấy ở kết quả trả về của netstat, MySQL không chỉ lắng nghe ở
localhosst mà còn ở tất cả các mặt, điều đó có nghĩa nó có thể được truy cập từ
bên ngoài. Vì vậy ta cần đặt mật khẩu cho tài khoản
root@server1.example.com. Nhưng có m ột lỗi nhỏ: Hầu hết các cột Host trong
bản mysql.user không chứa server1.example.com nh ưng chứa server1. Ta sẽ
thay đổi nó ngay bây giờ, và sau đó ta sẽ đặt mật khẩu cho tài khoản
root@server1.example.com.
Hãy kết nối tới MySQL:
mysql -u root -p
Điền vào mật khẩu của tài khoản root. Sau đó ở chế độ dòng lệnh của MySQL
hãy thực hiện:
mysql> USE mysql;
mysql> SELECT * FROM user;
Kết quả trả về có dạng :
- 3 rows in set (0.00 sec)
Như bạn thấy ở hàng thứ 2 nó đọc server1 thay vì server1.example.com ở cột
Host. Hãy thay nó bằng server1.example.com:
mysql> UPDATE user SET Host = 'server1.example.com' WHERE Host =
'server1';
mysql> FLUSH PRIVILEGES;
Giờ ta đã có thể thoát khỏi chế độ dòng lệnh của MySQL:
mysql> quit;
Bây giờ quay trở lại chế độ dòng lệnh thông thường, ta có thể đặt mật khẩu cho
tài khoản root@server1.example.com trên MySQL:
mysqladmin -h server1.example.com -u root password yourrootsqlpassword
3 Cài đặt Lighttpd
Lighttpd như là m ột gói của OpenSUSE, vì thế ta có thể cài đặt nó như sau:
$ yast2 -i lighttpd
Tiếp đó ta tạo liên kết khởi khởi động hệ thống cho Lighttpd (để Lighttpd tự
động khởi động mỗi khi hệ thống khởi động) và khởi động nó:
$ chkconfig --add lighttpd
$ /etc/init.d/lighttpd start
Bây giờ hãy mở trình duyệt và truy cập tới địa chỉ http://192.168.0.100 và bạn
sẽ thấy rằng Lighttpd cung cấp một trang (tốt, nó l à một trang 404 vì không có
- tập tin chỉ mục(index file) trong tài liệu gốc của Lighttpd, nh ưng ít nhất điều
này có nghĩa là Lighttpd hoạt động tốt):
Tài liệu gốc của Lighttpd ở /srv/www/htdocs trong OpenSUSE, và tập tin cấu
hình là /etc/lighttpd/lighttpd.conf.
4 Cài đặt PHP5
Ta có thể thiết lập PHP5 hoạt động chạy trên Lighttpd thông qua FastCGI. Gói
FastCGI cho PHP5 đã có trong OpenSUSE, php5 -fastcgi, ta cài đặt nó như sau:
$ yast2 -i php5-fastcgi
5 Cấu hình Lighttpd và PHP5
Để bật PHP5 trên Lighttpd ta phải sửa ba tập tin sau: /etc/php5/fastcgi/php.ini,
/etc/lighttpd/modules.conf, và /etc/lighttpd/conf.d/fastcgi.conf. Đ ầu tiên ta mở
/etc/php5/fastcgi/php.ini và bỏ comment ở dòng cgi.fix_pathinfo=1 nằm
khoảng giữa của tập tin:
$ vi /etc/php5/fastcgi/php.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 t o fix it's 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.
cgi.fix_pathinfo=1
[...]
- Sau đó ta mở /etc/lighttpd/modules.conf và bỏ comment dòng include
"conf.d/fastcgi.conf":
$ vi /etc/lighttpd/modules.conf
[...]
##
## FastCGI (mod_fastcgi)
##
include "conf.d/fastcgi.conf"
[...]
Cuối cùng mở /etc/lighttpd/conf.d/fastcgi.conf và chắc chắn rằng nó có chứa
dòng server.modules += ( "mod_fastcgi" ); sau đó bỏ comment ở đoạn
fastcgi.server:
$ vi /etc/lighttpd/conf.d/fastcgi.conf
[...]
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",
)
),
)
[...]
Sau đó khởi động lại Lighttpd
$ /etc/init.d/lighttpd restart
6 Kiểm tra PHP5 / Xem chi tiết về cài đặt PHP5 của bạn
Thư mục gốc của website là /srv/www/htdocs. Bây gi ờ ta có thể tạo một tập tin
- PHP (info.php) trong thư mục này và truy cập nó trên trình duyệt. Tập tin sẽ
hiển thị nhiều thông tin hữu ích về cài đặt PHP của ta, chẳng hạn nh ư phiên
bản PHP.
$ vi /srv/www/htdocs/info.php
phpinfo();
?>
Bây giờ truy cập nó trên trình duyệt (e.g. http://192.168.0.100/info.php):
Như bạn thấy PHP đã hoạt động và nó hoạt động thông qua FastCGI, như đã
được hiển thị ở dòng SERVER API. Nếu cuộn xuống dưới bạn sẽ thấy tất cả
các modules đã được bật ở PHP5. MySQL không đ ược liệt kê có nghĩa
MySQL chưa hỗ trợ PHP5.
7 Thiết lập MySQL Support cho PHP5
- Để làm cho MySQl hỗ trợ PHP ta có thể cài đặt gói php5-mysql package. Sẽ là
một ý tốt để cài đặt một vài modules khác của PHP5 để bạn có thể sử dụng nó
cho ứng dụng của mình:
$ yast2 -i php5-mysql php5-bcmath php5-bz2 php5-calendar php5-ctype php5-
curl php5-dbase php5-dom php5-ftp php5-gd php5-gettext php5-gmp php5-
iconv php5-imap php5-ldap php5-mbstring php5-mcrypt php5-mhash php5-
ncurses 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
Khởi động lại Lightt pd
/etc/init.d/lighttpd restart
Nạp lại trang http://192.168.0.100/info.php trên trình duyệt và kéo xuống mục
modules. Bạn sẽ thấy nhiều modules ở đây, bao gồm cả module MySQL:
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
ERROR:connection to 10.20.1.100:9315 failed (errno=111, msg=Connection refused)
ERROR:connection to 10.20.1.100:9315 failed (errno=111, msg=Connection refused)
Đang xử lý...