Cách dễ nhất để kích hoạt PHP trên nginx là gì?


130

Cách dễ nhất để kích hoạt PHP trên nginx trên Ubuntu 12.04 là gì?

Giải pháp tốt nhất là giải pháp yêu cầu công việc tối thiểu, lý tưởng nhất là cài đặt gói :)

Câu trả lời:


141

Phương pháp sau đây sẽ giúp bạn bắt đầu nhanh trên Ubuntu 12.04:

Cài đặt các phụ thuộc:

sudo apt-get install php5-common php5-cli php5-fpm

Cài đặt nginx:

sudo apt-get install nginx

Bắt đầu nginx:

sudo service nginx start

Kiểm tra xem nó có hoạt động không (nên xem "Chào mừng bạn đến nginx!")

sudo service nginx stop

Trong cấu hình trang nginx của bạn (/ etc / nginx / site-Available / default), sửa đổi dòng trong phần máy chủ {}

index index.html index.htmđể index index.php index.html index.htm.

Bỏ ghi chú các dòng trong phần {} của máy chủ bắt đầu bằng

listen cho cả ipv4 / ipv6.

Cuộn xuống nơi ghi "location ~ .php {" và các dòng không ghi chú để nó trông như thế này:

location ~ \.php$ {
  fastcgi_split_path_info ^(.+\.php)(/.+)$;
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_index index.php;
  include fastcgi_params;
}

sudo service php5-fpm restart sudo service nginx restart

Root web mặc định của bạn được đặt tại / usr / share / nginx / www (theo tệp cấu hình). (Xemroot /usr/share/nginx/www;

(Lưu ý: Đối với Ubuntu 12.10 trở lên, bạn sẽ cần thay thế fastcgi_pass 127.0.0.1:9000;dòng này để làm cho nó hoạt động fastcgi_pass unix:/var/run/php5-fpm.sock;:)


1
Là một lưu ý cuối, bạn có thể thực hiện 12.04 sử dụng ổ cắm UNIX như 12.10+ bằng cách chỉnh sửa /etc/php5/fpm/pool.d/www.confvà thay đổi dòng nghe thành listen = /var/run/php5-fpm.sock, sau đó sử dụng dòng @ThomasW. đề cập.
Powerlord

@Powerlord, thiết lập mặc định NGINX có cả hai dòng và giải thích sự khác biệt giữa hai dòng, thay vì phải thay đổi cách PHP chạy, bạn chỉ có thể thay đổi dòng cấu hình trong NGINX nhanh hơn và tất cả đều hoạt động.
Thomas Ward

@ThomasW. NGINX mặc định mô tả thiết lập của cả hai dòng cũng sai trong 12.04. php5-fpm yêu cầu phương thức đầu tiên do cách php5-fpm được cấu hình trong 12.04. Nó đã không thay đổi sang phương pháp thứ hai cho đến ngày 12.10. Để làm cho php5-fpm hoạt động với nginx như tài liệu, bạn phải sửa đổi www.conf của fpm như được đề cập trong tin nhắn trước đây của tôi.
Powerlord

@Powerlord Bạn nói đúng đó là một vấn đề, một vấn đề có thể được khắc phục bằng cách thay đổi tài liệu trong tệp cấu hình mặc định. Xem lỗi này mà tôi đã tạo ra về vấn đề này . Tôi chưa có cơ hội đề xuất một lỗi.
Thomas Ward

1
Điều này không hoạt động đối với tôi trên Ubuntu 14.04. nginx nói "Đã xảy ra lỗi, trang bạn đang tìm không tìm thấy", phải làm sao?
dùng3459110

46

EDIT: Như Matt Browne đã chỉ ra, bạn có thể quan tâm đến bài đăng gần đây hơn này:
Cách cài đặt Linux, Nginx, MySQL, PHP (LEMP stack) trong Ubuntu 16.04


Các câu trả lời của papashou là đúng về già Ubuntu 12.04. Kể từ Ubuntu 12.10, cấu hình hơi khác một chút. Đây là những gì tôi đã làm:

Tải về

sudo apt-get install nginx php5-fpm

Kích hoạt PHP

Bỏ ghi chú các dòng sau trong tệp cấu hình /etc/nginx/sites-available/default

location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

#   # With php5-cgi alone:
#   fastcgi_pass 127.0.0.1:9000;
    # With php5-fpm:
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
}

Bắt đầu (hoặc khởi động lại)

sudo service php5-fpm restart
sudo service nginx restart

Kiểm tra nginx

Mở liên kết này http://localhostsẽ hiển thị "Chào mừng bạn đến nginx!"

Kiểm tra php

Tạo một tập tin php:

  • Đường dẫn đích là đầu ra của

    awk -F' |;' '/^[^#]*root/ {print $2}' /etc/nginx/sites-available/default
    

    ví dụ /usr/share/nginx/www

  • Viết một info.phptập tin với:

    echo '<?php phpinfo(); ?>' | \
        sudo tee /usr/share/nginx/www/info.php
    

    hoặc như một lớp lót

    echo '<?php phpinfo(); ?>' | \
        sudo tee "$(awk -F' |;' '/^[^#]*root/ {print $2}' /etc/nginx/sites-available/default)/info.php"
    

Mở http://localhost/info.phpsẽ hiển thị trang thông tin PHP.


3
Cảm ơn vì điều đó. Đây là một liên kết hữu ích khác: digitalocean.com/community/tutorials/ giết . Và lưu ý rằng nếu bạn muốn cài đặt MySQL, bạn cũng cần phải chạy apt-get install php5-mysql(ngoài việc cài đặt chính MySQL).
Matt Browne

1
Có phiên bản mới của bài viết trên cho Ubuntu 16: digitalocean.com/community/tutorials/,
Matt Browne
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.