2012-01-13 33 views
13

Gần đây tôi đã phát hiện NginX và quyết định dùng thử trên máy chủ của tôi. Tôi có NginX chạy và có thể phục vụ các tệp PHP và HTML. Nhưng bây giờ tôi muốn thử cài đặt drupal. Khi cố gắng cài đặt nó và kiểm tra các yêu cầu, tôi bị dừng lại bởi một yêu cầu.Làm thế nào để cài đặt phần mở rộng PHP trên nginx?

phần mở rộng PHP tàn tật

Hệ thống yêu cầu bạn kích hoạt phần mở rộng PHP trong danh sách sau đây (xem trang yêu cầu hệ thống để biết thêm thông tin):

gd

Tôi đã cố gắng để cài đặt gd bằng cách thực hiện apt-get install php5-gd và nó cho biết nó đã được cài đặt. Vì vậy, tôi đã tạo một tệp phpinfo() và kiểm tra xem liệu gd đã được bật chưa và tôi không thể tìm thấy nó. Điều này có liên quan đến NginX hay PHP không? Tôi phải làm gì để sửa lỗi này?

Trả lời

27

Vì bạn đang sử dụng Nginx - đó phải có nghĩa là bạn đang chạy PHP với PHP- FPM.

Sau khi bạn cài đặt công cụ bạn cần phải:

sudo /etc/init.d/php-fpm restart 

hoặc

service php5-fpm restart 

trong các phiên bản Ubuntu mới hơn

để PHP sẽ đón các phần mở rộng mới.

+1

Tôi cũng làm việc cho tôi nhưng với một sửa đổi nhỏ: 'sudo /etc/init.d/php5-fpm restart'. – Lekhnath

+6

'sudo service php5-fpm restart' cũng hoạt động với tôi. – Lekhnath

+0

Với Fedora27, PHP7 - 'dịch vụ php-fpm restart' làm việc cho tôi. –

1

Tiện ích mở rộng PHP chỉ có thể thực hiện với PHP. Sự lựa chọn của bạn của máy chủ web (apache, nginx, vv) không ảnh hưởng đến chúng. Nhiều khả năng bạn chỉ cần bật tiện ích mở rộng gd. Nếu bạn đang ở trên Ubuntu, kiểm tra /etc/php5/conf.d thư mục và thêm một gd.ini với dòng sau:

extension=gd.so 
+0

điều này đã lưu ngày của tôi. Tôi đang làm việc trên thiết lập Linux LEMP vòm và thậm chí sau khi cài đặt pacman -S php-gd nó không hoạt động. –

2

Nếu thiết lập máy chủ web của bạn theo thứ tự, chỉ cài đặt phần mở rộng php gd và khởi động lại trình thông dịch kịch bản lệnh php và máy chủ web.

sudo apt-get install php5-gd 
sudo /etc/init.d/php-fastcgi stop 
sudo /etc/init.d/php-fastcgi start 
sudo /etc/init.d/nginx stop 
sudo /etc/init.d/nginx start 

Dưới đây là một vĩ đại LEMP hướng dẫn http://library.linode.com/web-servers/nginx/php-fastcgi/ubuntu-10.04-lucid

3

Trong tương lai tôi nếu tôi quên này.

Nếu bạn đã rối tung xung quanh với /etc/php/fpm thì có thể bạn đã vô tình mất liên kết tượng trưng thành conf.d có nghĩa là tệp tải gd và PDO sẽ không được khởi động với FPM.

Đây sẽ là vấn đề nếu bạn chỉ sử dụng cấu hình cơ bản đi kèm với PHP5-FPM. Nếu bạn có một cấu hình tùy chỉnh, bạn có thể bao gồm các tập tin ở một nơi khác.

Giải pháp: Tạo lại liên kết tượng trưng.

cd /etc/php5/fpm 
sudo ln -s /etc/php5/conf.d /etc/php5/fpm/conf.d 
0

Tôi gặp phải vấn đề tương tự khi thực hiện sudo apt-get install php5-gd để hoạt động. Đầu ra của bảng điều khiển được đề xuất để thực hiện sudo apt-get update. Chỉ cập nhật cơ bản trên tất cả các gói của bạn.

Sau khi cập nhật, tôi chạy sudo apt-get instal php5-gd và nó đã làm tất cả việc nâng hạng nặng cho tôi, bao gồm khởi động lại php5-fpm và cài đặt đúng mọi thứ ở giữa.

0

nếu bạn đang sử dụng centos 7 và bạn không thể tìm thấy /etc/init.d/php-fpm, bạn có thể thử systemctl restart php-fpm, đã hoạt động đối với tôi.

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