Danh mục

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    
tailieu_vip

Phí tải xuống: 1,000 VND Tải xuống file đầy đủ (15 trang) 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 ...

Tài liệu được xem nhiều:

Gợi ý tài liệu liên quan: