Hướng dẫn cài đặt và thiết lập Apache2 với module mod_fcgid và PHP5 trên Ubuntu 10.04 potx - Pdf 18

Hướng dẫn cài đặt và thiết lập Apache2 với module
mod_fcgid và PHP5 trên Ubuntu 10.04 Trong bài viết sau, Quản Trị sẽ giới thiệu với các bạn cách
cài đặt Apache2 với module hỗ trợ mod_fcgid và PHP5 trên
nền tảng Ubuntu 10.04. Module này là 1 sự thay thế khá
hoàn hảo cho module cũ – mod_fastcgi. Nó cho phép b
ạn thực
hiện các đoạn mã PHP với tài khoản tương ứng của Apache.

Lưu ý sơ bộ

Tại bài thử nghiệm này chúng ta sử dụng hệ điều hành Ubuntu
server với hostname server1.example.com và địa chỉ IP
192.168.0.100. Tại đây, ta tạo 2 vhost Apache, bao gồm
www.example1.com và www.example2.com để mô phỏng mục
đích sử dụng của mod_fcgid. Hãy đăng nhập vào hệ thống bằng
tài khoản root:
sudo su
/bin/sh là đường dẫn liên kết đến /bin/dash, nhưng chúng ta chỉ
cần đến /bin/bash chứ không phải là /bin/dash. Do vậy hãy gõ
lệnh sau:
dpkg-reconfigure dash

Install dash as /bin/sh? < gõ No
Tiếp đó, chúng ta cần tắt bỏ AppArmor:
/etc/init.d/apparmor stop
update-rc.d -f apparmor remove
aptitude remove apparmor apparmor-utils
Cài đặt Apache2 / mod_fcgi / PHP5

;
cgi.fix_pathinfo=1
[ ]
Tiếp tục mở file /etc/apache2/mods-available/fcgid.conf … :
vi /etc/apache2/mods-available/fcgid.conf
và thêm dòng mã PHP_Fix_Pathinfo_Enable 1 (không giống
như các phiên bản Ubuntu trước kia, với bản 10.04 d
òng mã này
không được nằm trong section của <VirtualHost> nếu không sẽ
gây ra lỗi PHP_Fix_Pathinfo_Enable cannot occur within
<VirtualHost> section):
<IfModule mod_fcgid.c>
AddHandler fcgid
-script .fcgi
FcgidConnectTimeout 20
PHP_Fix_Pathinfo_Enable 1
</IfModule>
Và khởi động lại Apache:
/etc/init.d/apache2 restart
Tạo Vhosts cho www.example1.com và
www.example2.com

Trong bước tiếp theo, chúng ta sẽ tạo 2 vhost -
www.example1.com (với thư mục tài liệu gốc là
/var/www/web1/web) và www.example2.com (thư mục tài
liệu gốc là /var/www/web2/web). Trong đó,
www.example1.com thuộc sở hữu của tài khoản người
dùng và nhóm web1, còn www.example2.com thuộc sở
hữu của tài khoản người dùng và nhóm web2. Trước tiên,
chúng ta tạo tài khoản người sử dụng và các nhóm tương

hỗ trợ cho từng website riêng biệt trong thư mục con của
/var/www; và những đoạn mã này sẽ đảm nhận nhiệm vụ
gọi các thư viện của PHP tại /usr/lib/cgi-bin/php. Và những
đoạn mã này phải thuộc quyền quản lý của các tài khoản
người dùng và nhóm riêng biệt trong từng website. Tại đây,
chúng ta sẽ tạo những đoạn mã tương ứng bên trong thư
mục /var/www/php-fcgi-scripts, ví dụ là /var/www/php-
fcgi-scripts/web1 và /var/www/php-fcgi-scripts/web2:
mkdir -p /var/www/php-fcgi-scripts/web1
mkdir -p /var/www/php-fcgi-scripts/web2

vi /var/www/php-fcgi-scripts/web1/php-fcgi-starter

#!/bin/sh
PHPRC=/etc/php5/cgi/
export PHPRC
export PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_CHILDREN=8
exec /usr/lib/cgi-bin/php

vi /var/www/php-fcgi-scripts/web2/php-fcgi-starter

#!/bin/sh
PHPRC=/etc/php5/cgi/
export PHPRC
export PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_CHILDREN=8
exec /usr/lib/cgi-bin/php
Thông tin tại dòng PHPRC sẽ chỉ tới thư mục của file
php.ini (ví dụ /etc/php5/cgi/ thành /etc/php5/cgi/php.ini).

Order allow,deny
Allow from all
</Directory>
</IfModule>

# ErrorLog /var/log/apache2/error.log
# CustomLog /var/log/apache2/access.log combined
ServerSignature Off

</VirtualHost>
a2ensite web1

vi /etc/apache2/sites-available/web2

<VirtualHost *:80>
ServerName www.example2.com
ServerAlias example2.com
ServerAdmin
DocumentRoot /var/www/web2/web/

<IfModule mod_fcgid.c>
SuexecUserGroup web2 web2
<Directory /var/www/web2/web/>
Options +ExecCGI
AllowOverride All
AddHandler fcgid-script .php
FCGIWrapper /var/www/php-fcgi-scripts/web2/php-fcgi-
starter .php
Order allow,deny
Allow from all

Như đã đề cập bên trên, mỗi website riêng biệt đều có mã
kích hoạt php-fcgi-starter tương ứng, vì vậy chúng ta không
thể tạo riêng file php.ini cho từng website được. Để mô tả
quá trình này, chúng ta sẽ copy file php.ini mặc định
(/etc/php5/cgi/php.ini) tới thư mục /var/www/web2/ và
“ép” www.example2.com sử dụng php.ini từ thư mục
/var/www/web2/:
cp /etc/php5/cgi/php.ini /var/www/web2/
chown web2:web2 /var/www/web2/php.ini
Tại đây, bạn có thể chỉnh lại file /var/www/web2/php.ini
theo ý thích. Sau đó chúng ta tiếp tục mở file
/var/www/php-fcgi-scripts/web2/php-fcgi-starter … :
vi /var/www/php-fcgi-scripts/web2/php-fcgi-starter
và thêm giá trị /var/www/web2/ vào dòng PHPRC:
#!/bin/sh
PHPRC=/var/www/web2/
export PHPRC
export PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_CHILDREN=8
exec /usr/lib/cgi-bin/php
Và tải lại Apache:
/etc/init.d/apache2 reload
Tiếp theo, tạo file phpinfo(); cho www.example2.com … :
vi /var/www/web2/web/info.php

<?php
phpinfo();
?>
Và kiểm tra bằng đường dẫn
Tại dòng Loaded


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status