Cách cài đặt máy chủ web với Nginx + MySQL + PHP5 + APC + Spawn_FastCGI [Phần thứ 4: Nginx + PHP với SpawnFastCGI]

Một thời trước đây Tôi đã nói với bạn về loạt bài hướng dẫn này, về cách cài đặt và cấu hình máy chủ cho nhu cầu lưu trữ cao. Bài viết này sẽ nói về cài đặt và cấu hình Nginx + PHP với đẻ trứng nhanh CGI:

Spawn_FastCGI:

Điều này có thể nói rằng nó là thứ kết nối Nginx với PHP, tức là, ngay cả khi họ đã cài đặt gói PHP5 nếu họ không cài đặt và thực thi Spawn_FastCGI khi họ mở một trang web bằng PHP thì trình duyệt sẽ tải xuống tệp, nó sẽ không cho họ thấy bất cứ điều gì mà .php đã được lập trình vì máy chủ không biết cách xử lý tệp .php, đó là lý do tại sao cài đặt và cấu hình Spawn_FastCGI là điều cần thiết.

Nếu chúng tôi sử dụng Apache, nó sẽ đơn giản như cài đặt gói libapache2-mod-php5, nhưng vì chúng tôi sử dụng Nginx, chúng tôi sẽ phải cài đặt gói spawn-fcgi. Ngoài ra, trong hướng dẫn này, tôi sẽ giải thích cách tạo tập lệnh ban đầu cho nó trong /etc/init.d/ để bạn có thể điều khiển nó thoải mái hơn.

1. Cài đặt:

Chúng tôi sẽ bắt đầu với điều đầu tiên, cài đặt Spawn-FastCGI và PHP từ kho của chúng tôi.

Tất cả các lệnh sẽ được thực thi đều được thực thi với quyền root, bằng cách đặt sudo ở đầu mỗi dòng hoặc bằng cách đăng nhập với quyền root

Nếu trên máy chủ của bạn, bạn sử dụng một bản phân phối chẳng hạn như Debian, Ubuntu hoặc một số dẫn xuất trong thiết bị đầu cuối, bạn phải nhập phần sau và nhấn đăng ký hạng mục thi :

aptitude install spawn-fcgi php5-cgi php5-curl

aptitude không được cài đặt theo mặc định trong Ubuntu, tuy nhiên tôi khuyên bạn nên cài đặt nó và sử dụng nó thay vì apt-get, vì aptitude giúp quản lý tốt hơn các phụ thuộc trong một số trường hợp nhất định

Cá nhân tôi không khuyên dùng bất kỳ phiên bản phái sinh nào của Debian, thậm chí không phải Ubuntu cho máy chủ, trong những năm qua, trải nghiệm của tôi không hoàn toàn hài lòng. Lựa chọn đầu tiên của tôi cho hệ điều hành máy chủ là Debian, sau đó tôi nghĩ đến CentOS, cuối cùng là một số BSD

2. Cấu hình:

Trong bước trước (khi chúng tôi cài đặt Nginx), chúng tôi đã tải xuống một tệp có tên nginx-spawn-fastcgi.tar.gz mà khi giải nén nó sẽ tạo ra thư mục nginx-spawn-fastcgi trong nhà của chúng tôi, chúng tôi sẽ sao chép tệp từ đó. spawn-fastcgi tới /etc/init.d/:

cp ~/nginx-spawn-fastcgi/spawn-fastcgi /etc/init.d/

Ngoài ra, chúng ta cần tệp thực thi php-fastcgi trong / usr / bin /

cp ~/nginx-spawn-fastcgi/php-fastcgi /usr/bin/

Tuyệt vời, chúng tôi đã chuẩn bị sẵn tệp cho phép chúng tôi điều khiển spawn-fastcgi và cả tệp thực thi php-fastcgi, bây giờ chúng tôi sẽ bắt đầu spawn-fastcgi:

/etc/init.d/spawn-fastcgi start

Nó sẽ cho chúng ta thấy một cái gì đó như: spawn-fcgi: con sinh sản thành công: PID: 3739

Bây giờ chúng ta sẽ thay thế tệp /etc/nginx/sites-available/mywebsite.net của mình bằng ~ / nginx-spawn-fastcgi / mywebsite_plus_php.net

cp ~/nginx-spawn-fastcgi/mywebsite_plus_php.net /etc/nginx/sites-available/mywebsite.net

Tại sao? Đơn giản, vì tệp mywebsite.net trước đây của chúng tôi không hỗ trợ PHP, tức là nó chỉ có Nginx, trong khi tệp mywebsite_plus_php.net có hỗ trợ PHP, tức là Nginx + PHP sử dụng SpawnFastCGI.

Sự khác biệt giữa các tệp này là một số, ví dụ:

  • Ở dòng 3, tệp hỗ trợ PHP được thêm index.php
  • Một dòng mới trong số 3 có chứa: fastcgi_index index.php;
  • Một số dòng mới khác cho Nginx biết cách xử lý PHP.
  • … .. Tóm lại, đây là một bức ảnh sẽ giúp bạn biết sự khác biệt giữa hai tệp:

nginx_mysql_spawn-fastcgi_comparing_mywebsite_confs

Tệp mywebsite_plus_php.net là một vhost dùng làm ví dụ, nghĩa là, và nói cách khác, chúng ta phải sửa đổi nó và thiết lập cấu hình của mình.

Chúng ta phải thay đổi những điều sau:

  • access_log (dòng 3): Đây sẽ là đường dẫn của tệp nhật ký truy cập đến trang web này
  • error_log (dòng 4): Đây sẽ là đường dẫn của tệp nhật ký lỗi đến trang web này
  • server_name (dòng 5): URL, tên miền được lưu trữ trong thư mục đó, ví dụ: nếu đó là diễn đàn DesdeLinux nó sẽ là: diễn đàn server_name.desdelinuxNet.
  • root (dòng 6): Đường dẫn đến thư mục chứa các tệp html, hãy để nó trong / var / www / vì nó sẽ chỉ là một bài kiểm tra
Rõ ràng là họ phải trỏ trong bản ghi DNS của nhà cung cấp dịch vụ lưu trữ của họ (sử dụng CPanel hoặc một công cụ khác) rằng miền hoặc miền phụ được khai báo trong server_name nằm trên IP của máy chủ này mà họ đang định cấu hình. Có nghĩa là, trong DNS nơi họ tạo miền phụ cho miền của họ, họ phải khai báo rằng miền hoặc miền phụ mà họ đã đặt ở dòng 5 nằm trên máy chủ này (máy chủ này = địa chỉ IP của máy chủ được đề cập)

Sẵn sàng, bây giờ chúng tôi sẽ khởi động lại Nginx:

/etc/init.d/nginx restart

Để xác minh rằng Nginx của chúng tôi xử lý PHP đúng cách, hãy sao chép tệp phptest.php vào thư mục được lưu trữ, nghĩa là, tệp được chỉ ra trong dòng số 6 của tệp mywebsite_plus_php.net (ví dụ: root / var / www /), giả sử rằng có trang web được lưu trữ trực tiếp trong / var / www / sẽ là:

cp ~/nginx-spawn-fastcgi/phptest.php /var/www/

Giả sử rằng trong dòng 5 của mywebsite_plus_php.net của chúng tôi (tức là dòng server_name), chúng tôi đã nói rằng trang của chúng tôi là www.mysite.net thì chúng tôi phải truy cập www.mysite.net/phptest.php. Nói cách khác, ý tưởng là truy cập tệp phptest.php từ trình duyệt của chúng tôi và nếu thông tin sau xuất hiện thì Nginx của chúng tôi được liên kết hoàn hảo với PHP:

nginx_mysql_spawn-fastcgi_tersting_nginx_php

Trong trường hợp điều này không xuất hiện, tức là trình duyệt cố gắng tải xuống tệp .php ... điều này có nghĩa là họ đã làm sai điều gì đó, rằng họ đã không thay thế /etc/nginx/sites-available/mywebsite.net bằng ~ / nginx-spawn-fastcgi / mywebsite_plus_php.net… rằng họ đã quên khởi động lại Nginx bằng /etc/init.d/nginx khởi động lại hoặc họ quên khởi động Spawn-FastCGI bằng /etc/init.d/spawn-fastcgi start

Cho đến nay hướng dẫn liên kết Nginx với PHP bằng SpawnFastCGI, chúng ta chỉ cần MySQL và APC 🙂

Tôi hy vọng điều này là thú vị cho bạn.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   f3niX dijo

    Nếu nó là một phần tư, tại sao hình ảnh lại nói 3? bắt đầu từ 0 tôi đoán? bài xuất sắc.

    Liên quan

    1.    KZKG ^ Gaara dijo

      1: Trình bày
      Thứ 2: Nginx
      Thứ 3: Nginx + PHP (Spawn_FastCGI)

      ????

      Cảm ơn vì đã đọc ^ _ ^

      1.    Rodrigo dijo

        chuyện gì xảy ra với phần 4 vậy ???
        và với tiếp theo ?????

  2.   rpyanm dijo

    Hi

    Sẽ là lựa chọn tốt hơn nếu thay vì mysql, bạn sử dụng MariaDB, vì bạn nên biết cái sau là một nhánh của cái đầu tiên và đã có tin đồn rằng nó sẽ là Mysql của tương lai (http://www.genbetadev.com/bases-de-datos/mariadb-sera-el-mysql-del-futuro) vì Mysql là miễn phí, cho đến một thời điểm.

    SkySQL, một công ty cung cấp dịch vụ từ cơ sở dữ liệu miễn phí, đã hỗ trợ tài chính cho dự án MariaDB (http://www.genbetadev.com/bases-de-datos/mariadb-y-skysql-unen-fuerzas-para-llevar-a-mariadb-a-lo-mas-alto) và Google muốn ngừng phụ thuộc vào Mysql, như Wikipedia cũng đã làm, và sẽ thực hiện chuyển đổi từ MySQL 5.1 sang MariaDB 10.0 với sự trợ giúp chính xác của SkySQL, những người đã là chuyên gia trong lĩnh vực này.

    xin chào2.

    1.    KZKG ^ Gaara dijo

      Xin chào,

      Tất nhiên là có, tôi biết MariaDB và trên thực tế, chúng tôi đã nói về nó: https://blog.desdelinux.net/tag/mariadb/

      No obstante, ahora mismo estoy usando MySQL pues estos tutoriales los hago desde la experiencia particular que tuve al migrar DesdeLinux (con todos sus servicios) hacia otros servidores, en ese momento cambiamos la tecnología completamente y las tareas o cambios que tuve que afrontar no fueron pocos.
      Đọc bình luận này của tôi từ thời điểm đó: https://blog.desdelinux.net/el-blog-desdelinux-abandona-hostgator-y-pasa-a-gnutransfer/comment-page-1/#comment-81291

      Ý tưởng cuối cùng thực sự là có, hãy chuyển sang MariaDB, nhưng tôi không có thời gian để làm các bài kiểm tra liên quan 🙂

      Cảm ơn vì đã đọc

  3.   eliotime3000 dijo

    Hướng dẫn này sẽ giúp tôi cài đặt zPanel X với NGINX để không làm hỏng trang web của tôi khi di chuyển sang GNUPanel VPS.

  4.   kéo lê dijo

    Món quà Giáng sinh? Tôi mong được chúc mừng tất cả.

    1.    KZKG ^ Gaara dijo

      Cảm ơn đối tác 😀

  5.   st0rmt4il dijo

    Đã thêm vào mục yêu thích!

    Nhân tiện, tôi có nghi ngờ và câu hỏi này, liệu Nginx có thực sự có hiệu suất cao hơn Apache không?

    Chúc mừng!

    1.    KZKG ^ Gaara dijo

      Vâng, Apache có thể được tối ưu hóa rất nhiều nhưng… cho đến nay, Google và hầu như tất cả chúng ta đều đồng ý rằng Nginx tiêu tốn ít RAM hơn nhiều, có hiệu suất không đáng kể, mặc dù việc cấu hình không hoàn toàn đơn giản.

  6.   luật sư louis dijo

    Tốt KZKG ^ Gaara thông tin tuyệt vời cho những ai quan tâm đến thế giới này, một câu hỏi, cho khi đăng bài thứ 4 😀