2012-07-18 27 views
18

Tôi vừa mới cài đặt lighttpd trên máy chủ chuyên dụng của tôi, mod_fastcgi được kích hoạt, vì vậy tôi đã gắn các dòng sau vào lighttpd.conf file:Lighttpd 403 Forbidden cho PHP tập tin

fastcgi.server = (".php" => 
("localhost" => 
        (
         "socket" => "/tmp/php-fastcgi.socket", 
         "bin-path" => "/usr/local/bin/php-cgi" 
        ) 
        ) 
) 

Nhưng nó vẫn không trợ giúp, vì tôi nhận được thông báo 403 - Forbidden khi tôi cố gắng nhập tệp PHP trong trình duyệt web của mình ... Khi tôi xóa tệp index.php khỏi thư mục gốc trên web của mình và đặt index.html vào đó, mọi thứ đều ổn, và có không có lỗi, bất kể tệp index.php có 100 dòng hay chỉ một - <?php echo 'test'; ?>, nó luôn hiển thị 403 - Forbidden, giờ tôi không còn ý tưởng.

Tại sao nó lại vui vẻ?

ls -la của thư mục gốc web của tôi:

# 
total 6 

    drwxr-xr-x 15 root wheel 1536 Jul 18 10:23 . 
    drwxr-xr-x 4 root wheel 512 Jul 18 08:45 .. 
    drwxr-xr-x 2 www www  512 Jul 1 02:36 cache 
    drwxr-xr-x 2 www www  512 Jul 1 02:36 config 
    drwxr-xr-x 6 www www  512 Jul 1 02:36 inc 
-rw-r--r-- 1 www www  9 Jul 18 11:02 index.php 
+0

Bạn có thể hiển thị 'ls -la' của gốc web không? Có thể các quyền của bạn là sai. – Martin

+0

#eded quesition của tôi với số – Scott

+0

và người dùng nào đang chạy php-cgi? Ngoài ra có bất kỳ lỗi nào trong nhật ký của bạn không? – Martin

Trả lời

14

php của bạn không được cấu hình đúng. kiểm tra lighttpd bạn error.log nó sẽ ghi cái gì đó như:

(mod_fastcgi.c.1397) [ERROR]: spawning fcgi failed. 

tôi sử dụng:

fastcgi.server = (".php" => ((          
        "bin-path" => "/bin/php-cgi",    
        "socket" => "/tmp/php.socket",    
        "max-procs" => 1,          
        "bin-environment" => (       
         "PHP_FCGI_CHILDREN" => "16",      
         "PHP_FCGI_MAX_REQUESTS" => "10000"   
        ),   
        "broken-scriptfilename" => "enable" 
       ))) 

chắc chắn rằng fastcgi được kích hoạt trong modules.conf

server.modules = (
    "mod_access", 
    "mod_fastcgi", 
# "mod_alias", 
# "mod_auth", 
# "mod_evasive", 
# "mod_redirect", 
# "mod_rewrite", 
# "mod_setenv", 
# "mod_usertrack", 
) 
6

tôi đã cùng một vấn đề. Việc sửa chữa cũng đơn giản như di chuyển các tập tin cấu hình để có được kích hoạt. Tất cả tôi đã làm là ...

$ ln -s /etc/lighttpd/conf-available/10-fastcgi.conf /etc/lighttpd/conf-enabled/ 
$ ln -s /etc/lighttpd/conf-available/15-fastcgi-php.conf /etc/lighttpd/conf-enabled/ 

và tải lại ...

$ service lighttpd force-reload 
+2

Đây không phải là cách chính xác để thực hiện việc này. Bạn phải không chạy các lệnh nhẹ-bật-mod. –

10

Cùng một vấn đề, việc sửa chữa cho Mint đã cài đặt gói php5-cgi.
sudo apt-get install php5-cgi
phép module fastcgi
sudo lighttpd-enable-mod fastcgi fastcgi-php
và cuối cùng lại
sudo service lighttpd force-reload

+0

đây là mã duy nhất làm việc với tôi Tôi đang sử dụng php5-cgi –

+0

cảm ơn, điều này làm việc cho tôi –

+0

Nên sử dụng 'sudo apt-get install php7.0-cgi' cho hiện đại của disto – Nimjox

1

Không chắc, nhưng cần lưu ý là một lý do khác có thể cho "403 Forbidden" câu trả lời.

Kiểm tra đối với bất kỳ mô-đun truy cập (mod_access) báo cáo trong file config (lighttpd.conf)

Ví dụ:

 url.access-deny = ("", ".php"); 

Docs: Module mod_access

Các vấn đề liên quan