Cài đặt Apache2 với module mod_fcgid và PHP5 trên OpenSUSE 11.2
Số trang: 15
Loại file: pdf
Dung lượng: 837.75 KB
Lượt xem: 8
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Cài đặt Apache2 với module mod_fcgid và PHP5 trên OpenSUSE 11.2Trong bài viết sau, Quản Trị Mạng sẽ giới thiệu với các bạn cách cài đặt Apache2 với module mod_fcgid và PHP5 trên OpenSUSE 11.2. Về bản chất, module mod_fcgid là 1 sự thay thế hoàn hảo của mod_fastcgi, module này cho phép người dùng thực thi các đoạn mã PHP với sự cho phép của người dùng bên trong các tài khoản Apache. Lưu ý sơ bộ Trong bài viết này chúng ta sử dụng hệ thống OpenSUSE 11.2 server cùng với hostname server1.example.com và địa chỉ IP 192.168.0.100,...
Nội dung trích xuất từ tài liệu:
Cài đặt Apache2 với module mod_fcgid và PHP5 trên OpenSUSE 11.2 Cài đặt Apache2 với module mod_fcgid và PHP5 trên OpenSUSE 11.2Trong bài viết sau, Quản Trị Mạng sẽ giới thiệu với các bạn cách cài đặtApache2 với module mod_fcgid và PHP5 trên OpenSUSE 11.2. Về bảnchất, module mod_fcgid là 1 sự thay thế hoàn hảo của mod_fastcgi, modulenày cho phép người dùng thực thi các đoạn mã PHP với sự cho phép củangười dùng bên trong các tài khoản Apache.Lưu ý sơ bộTrong bài viết này chúng ta sử dụng hệ thống OpenSUSE 11.2 server cùngvới hostname server1.example.com và địa chỉ IP 192.168.0.100, đồng thờitạo 2 Apache vhost là www.example1.com và www.example2.com, để môphỏng phương thức sử dụng mod_fcgid.Cài đặt Apache2/mod_fcgi/PHP5Để cài đặt những thành phần trên, chúng ta sử dụng câu lệnh sau:yast2 -i apache2 apache2-mod_fcgid php5-fastcgiNếu Apache2 đã được cài đặt sẵn với PHP5 như 1 phần module của Apache,tắt bỏ module PHP5 như sau:a2dismod php5Tiếp theo, kích hoạt 2 module suexec và fcgid:a2enmod suexeca2enmod fcgidTạo đường dẫn khởi động của Apache:chkconfig --add apache2/etc/init.d/apache2 startMở file /etc/php5/fastcgi/php.ini …:vi /etc/php5/fastcgi/php.inivà chú thích các đoạn mã như sau:[...]; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATEDsupport for CGI. PHPs; previous behaviour was to set PATH_TRANSLATED toSCRIPT_FILENAME, and to not grok; what PATH_INFO is. For more information on PATH_INFO, see the cgispecs. Setting; this to 1 will cause PHP CGI to fix its paths to conform to the spec. Asetting; of zero causes PHP to behave as before. Default is 1. You should fix yourscripts; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.; http://php.net/cgi.fix-pathinfocgi.fix_pathinfo=1[...]Sau đó khởi động lại Apache:/etc/init.d/apache2 restartTạo vhost cho www.example1.com và www.example2.comViệc tiếp theo của chúng ta là tạo 2 vhost, www.example1.com (với thư mụctài liệu root /srv/www/web1/web) và www.example2.com (thư mục tài liệuroot tại /srv/www/web2/web). Trong đó, www.example1.com được sở hữubởi người dùng và nhóm web1, www.example2.com thuộc về người dùng vàweb2.Trước tiên, tạo tài khoản người dùng và nhóm:groupadd web1groupadd web2useradd -s /bin/false -d /srv/www/web1 -m -g web1 web1useradd -s /bin/false -d /srv/www/web2 -m -g web2 web2chmod 755 /srv/www/web1chmod 755 /srv/www/web2Sau đó tạo thư mục tài liệu root và tạo quyền chứng thực, sở hữu thuộc vềweb1 và web2:mkdir -p /srv/www/web1/webchown web1:web1 /srv/www/web1/webmkdir -p /srv/www/web2/webchown web2:web2 /srv/www/web2/webSau đó chạy PHP sử dụng suExec, thư mục tài liệu root của suExec tại/srv/www:/usr/sbin/suexec2 -Vserver1:~ # /usr/sbin/suexec2 -V-D AP_DOC_ROOT=/srv/www-D AP_GID_MIN=96-D AP_HTTPD_USER=wwwrun-D AP_LOG_EXEC=/var/log/apache2/suexec.log-D AP_SAFE_PATH=/usr/local/bin:/usr/bin:/bin-D AP_UID_MIN=96-D AP_USERDIR_SUFFIX=public_htmlserver1:~ #Do đó chúng ta không thể gọi được các file PHP thực thi lệnh (/usr/bin/php-cgi) trực tiếp vì nó được lưu trữ bên ngoài thư mục tài liệu root của suExec.Nhưng suExec không chấp nhận các symlink, phương pháp duy nhất để giảiquyết vấn đề này tạo mã wrap tương ứng cho mỗi web site trong từng thưmục con của /srv/www; các đoạn mã wrap này sẽ có chức năng gọi file thựcthi PHP /usr/bin/php-cgi. Và, những đoạn mã wrap này phải được quản lý vàsở hữu trực tiếp bởi tài khoản người dùng và nhóm tương ứng của các website, tại đây chúng ta sẽ tạo mã wrap trong thư mục con của /srv/www/php-fcgi-scripts, ví dụ như /srv/www/php-fcgi-scripts/web1 và /srv/www/php-fcgi-scripts/web2.mkdir -p /srv/www/php-fcgi-scripts/web1mkdir -p /srv/www/php-fcgi-scripts/web2vi /srv/www/php-fcgi-scripts/web1/php-fcgi-starter#!/bin/shPHPRC=/etc/php5/fastcgi/export PHPRCexport PHP_FCGI_MAX_REQUESTS=5000export PHP_FCGI_CHILDREN=8exec /usr/bin/php-cgivi /srv/www/php-fcgi-scripts/web2/php-fcgi-starter#!/bin/shPHPRC=/etc/php5/fastcgi/export PHPRCexport PHP_FCGI_MAX_REQUESTS=5000export PHP_FCGI_CHILDREN=8exec /usr/bin/php-cgiDòng PHPRC chứa thông tin về thư mục nơi file php.ini được lưu trữ (ví dụ/etc/php5/fastcgi/ thành /etc/php5/fastcgi/php.ini). Trong đóPHP_FCGI_MAX_REQUESTS là số lượng yêu cầu tối đa trước khi quátrình fcgid dừng lại và quá trình mới tiếp tục. PHP_FCGI_CHILDREN địnhnghĩa số lượng “PHP children” sẽ được kích hoạt.Các đoạn mã php-fcgi-starter phải được kích hoạt:chmod 755 /srv/www/php-fcgi-scripts/web1/php-fcgi-starterchmod 755 /srv/www/php-fcgi-scripts/web2/php-fcgi-starterchown -R web1:web1 /srv/www/php-fcgi-scripts/web1chown -R web2:web2 /srv/www/php-fcgi-scripts/web2Tiếp theo, tạo vhost Apache của www.example1.com và www.example2.com:vi /etc/apache2/vhosts.d/www.example1.com.confServerName www.example1.comServerAlias example1.comServerAdmin webmaster@example1.comDocumentRoot /srv/www/web1/web/SuexecUserGroup web1 w ...
Nội dung trích xuất từ tài liệu:
Cài đặt Apache2 với module mod_fcgid và PHP5 trên OpenSUSE 11.2 Cài đặt Apache2 với module mod_fcgid và PHP5 trên OpenSUSE 11.2Trong bài viết sau, Quản Trị Mạng sẽ giới thiệu với các bạn cách cài đặtApache2 với module mod_fcgid và PHP5 trên OpenSUSE 11.2. Về bảnchất, module mod_fcgid là 1 sự thay thế hoàn hảo của mod_fastcgi, modulenày cho phép người dùng thực thi các đoạn mã PHP với sự cho phép củangười dùng bên trong các tài khoản Apache.Lưu ý sơ bộTrong bài viết này chúng ta sử dụng hệ thống OpenSUSE 11.2 server cùngvới hostname server1.example.com và địa chỉ IP 192.168.0.100, đồng thờitạo 2 Apache vhost là www.example1.com và www.example2.com, để môphỏng phương thức sử dụng mod_fcgid.Cài đặt Apache2/mod_fcgi/PHP5Để cài đặt những thành phần trên, chúng ta sử dụng câu lệnh sau:yast2 -i apache2 apache2-mod_fcgid php5-fastcgiNếu Apache2 đã được cài đặt sẵn với PHP5 như 1 phần module của Apache,tắt bỏ module PHP5 như sau:a2dismod php5Tiếp theo, kích hoạt 2 module suexec và fcgid:a2enmod suexeca2enmod fcgidTạo đường dẫn khởi động của Apache:chkconfig --add apache2/etc/init.d/apache2 startMở file /etc/php5/fastcgi/php.ini …:vi /etc/php5/fastcgi/php.inivà chú thích các đoạn mã như sau:[...]; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATEDsupport for CGI. PHPs; previous behaviour was to set PATH_TRANSLATED toSCRIPT_FILENAME, and to not grok; what PATH_INFO is. For more information on PATH_INFO, see the cgispecs. Setting; this to 1 will cause PHP CGI to fix its paths to conform to the spec. Asetting; of zero causes PHP to behave as before. Default is 1. You should fix yourscripts; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.; http://php.net/cgi.fix-pathinfocgi.fix_pathinfo=1[...]Sau đó khởi động lại Apache:/etc/init.d/apache2 restartTạo vhost cho www.example1.com và www.example2.comViệc tiếp theo của chúng ta là tạo 2 vhost, www.example1.com (với thư mụctài liệu root /srv/www/web1/web) và www.example2.com (thư mục tài liệuroot tại /srv/www/web2/web). Trong đó, www.example1.com được sở hữubởi người dùng và nhóm web1, www.example2.com thuộc về người dùng vàweb2.Trước tiên, tạo tài khoản người dùng và nhóm:groupadd web1groupadd web2useradd -s /bin/false -d /srv/www/web1 -m -g web1 web1useradd -s /bin/false -d /srv/www/web2 -m -g web2 web2chmod 755 /srv/www/web1chmod 755 /srv/www/web2Sau đó tạo thư mục tài liệu root và tạo quyền chứng thực, sở hữu thuộc vềweb1 và web2:mkdir -p /srv/www/web1/webchown web1:web1 /srv/www/web1/webmkdir -p /srv/www/web2/webchown web2:web2 /srv/www/web2/webSau đó chạy PHP sử dụng suExec, thư mục tài liệu root của suExec tại/srv/www:/usr/sbin/suexec2 -Vserver1:~ # /usr/sbin/suexec2 -V-D AP_DOC_ROOT=/srv/www-D AP_GID_MIN=96-D AP_HTTPD_USER=wwwrun-D AP_LOG_EXEC=/var/log/apache2/suexec.log-D AP_SAFE_PATH=/usr/local/bin:/usr/bin:/bin-D AP_UID_MIN=96-D AP_USERDIR_SUFFIX=public_htmlserver1:~ #Do đó chúng ta không thể gọi được các file PHP thực thi lệnh (/usr/bin/php-cgi) trực tiếp vì nó được lưu trữ bên ngoài thư mục tài liệu root của suExec.Nhưng suExec không chấp nhận các symlink, phương pháp duy nhất để giảiquyết vấn đề này tạo mã wrap tương ứng cho mỗi web site trong từng thưmục con của /srv/www; các đoạn mã wrap này sẽ có chức năng gọi file thựcthi PHP /usr/bin/php-cgi. Và, những đoạn mã wrap này phải được quản lý vàsở hữu trực tiếp bởi tài khoản người dùng và nhóm tương ứng của các website, tại đây chúng ta sẽ tạo mã wrap trong thư mục con của /srv/www/php-fcgi-scripts, ví dụ như /srv/www/php-fcgi-scripts/web1 và /srv/www/php-fcgi-scripts/web2.mkdir -p /srv/www/php-fcgi-scripts/web1mkdir -p /srv/www/php-fcgi-scripts/web2vi /srv/www/php-fcgi-scripts/web1/php-fcgi-starter#!/bin/shPHPRC=/etc/php5/fastcgi/export PHPRCexport PHP_FCGI_MAX_REQUESTS=5000export PHP_FCGI_CHILDREN=8exec /usr/bin/php-cgivi /srv/www/php-fcgi-scripts/web2/php-fcgi-starter#!/bin/shPHPRC=/etc/php5/fastcgi/export PHPRCexport PHP_FCGI_MAX_REQUESTS=5000export PHP_FCGI_CHILDREN=8exec /usr/bin/php-cgiDòng PHPRC chứa thông tin về thư mục nơi file php.ini được lưu trữ (ví dụ/etc/php5/fastcgi/ thành /etc/php5/fastcgi/php.ini). Trong đóPHP_FCGI_MAX_REQUESTS là số lượng yêu cầu tối đa trước khi quátrình fcgid dừng lại và quá trình mới tiếp tục. PHP_FCGI_CHILDREN địnhnghĩa số lượng “PHP children” sẽ được kích hoạt.Các đoạn mã php-fcgi-starter phải được kích hoạt:chmod 755 /srv/www/php-fcgi-scripts/web1/php-fcgi-starterchmod 755 /srv/www/php-fcgi-scripts/web2/php-fcgi-starterchown -R web1:web1 /srv/www/php-fcgi-scripts/web1chown -R web2:web2 /srv/www/php-fcgi-scripts/web2Tiếp theo, tạo vhost Apache của www.example1.com và www.example2.com:vi /etc/apache2/vhosts.d/www.example1.com.confServerName www.example1.comServerAlias example1.comServerAdmin webmaster@example1.comDocumentRoot /srv/www/web1/web/SuexecUserGroup web1 w ...
Tìm kiếm theo từ khóa liên quan:
thủ thuật máy tính công nghệ thông tin tin học hệ điều hành quản trị mạng computer networkGợi ý tài liệu liên quan:
-
Giáo trình Lý thuyết hệ điều hành: Phần 1 - Nguyễn Kim Tuấn
110 trang 454 0 0 -
52 trang 431 1 0
-
24 trang 357 1 0
-
Top 10 mẹo 'đơn giản nhưng hữu ích' trong nhiếp ảnh
11 trang 318 0 0 -
Làm việc với Read Only Domain Controllers
20 trang 305 0 0 -
74 trang 302 0 0
-
96 trang 296 0 0
-
Báo cáo thực tập thực tế: Nghiên cứu và xây dựng website bằng Wordpress
24 trang 289 0 0 -
Đồ án tốt nghiệp: Xây dựng ứng dụng di động android quản lý khách hàng cắt tóc
81 trang 283 0 0 -
173 trang 277 2 0
-
EBay - Internet và câu chuyện thần kỳ: Phần 1
143 trang 277 0 0 -
175 trang 273 0 0
-
Giáo trình Nguyên lý các hệ điều hành: Phần 2
88 trang 273 0 0 -
Tài liệu dạy học môn Tin học trong chương trình đào tạo trình độ cao đẳng
348 trang 269 1 0 -
Tài liệu hướng dẫn sử dụng thư điện tử tài nguyên và môi trường
72 trang 267 0 0 -
64 trang 264 0 0
-
Bài giảng An toàn và bảo mật thông tin - Trường đại học Thương Mại
31 trang 255 0 0 -
20 trang 250 0 0
-
Giáo trình Nguyên lý hệ điều hành (In lần thứ ba): Phần 1 - PGS.TS. Hà Quang Thụy
98 trang 250 0 0 -
Giáo trình Hệ thống mạng máy tính CCNA (Tập 4): Phần 2
102 trang 248 0 0