Apache ẩn phần mở rộng php

Máy chủ HTTP. Ví dụ. apache. Ưu tiên có mod_rewrite, nhưng không bắt buộc. Bạn cũng có thể sử dụng nginx hoặc Microsoft IIS nếu muốn

  • PHP tối thiểu 5. 6 [7. 4 được hỗ trợ]

  • tiện ích mở rộng mbstring PHP

  • phần mở rộng intl PHP

  • phần mở rộng PHP đơn giản

  • Phần mở rộng PDO PHP

  • Ghi chú

    Trong XAMPP, phần mở rộng intl được bao gồm nhưng bạn phải bỏ ghi chú

    composer create-project --prefer-dist cakephp/app:"^3.10" my_app_name
    
    9 trong php. ini và khởi động lại máy chủ thông qua Bảng điều khiển XAMPP

    Trong WAMP, tiện ích mở rộng intl được "kích hoạt" theo mặc định nhưng không hoạt động. Để làm cho nó hoạt động, bạn phải vào thư mục php [theo mặc định] C. \wamp\bin\php\php{version}, sao chép tất cả các tệp trông giống như icu*. dll và dán chúng vào thư mục bin apache C. \wamp\bin\apache\apache{version}\bin. Sau đó khởi động lại tất cả các dịch vụ và nó sẽ ổn thôi

    Mặc dù công cụ cơ sở dữ liệu không bắt buộc, nhưng chúng tôi tưởng tượng rằng hầu hết các ứng dụng sẽ sử dụng một. CakePHP hỗ trợ nhiều công cụ lưu trữ cơ sở dữ liệu

    • MySQL [5. 5. 3 hoặc cao hơn]

    • MariaDB [5. 5 hoặc cao hơn]

    • PostgreSQL

    • Microsoft SQL Server [2008 trở lên]

    • SQLite 3

    Ghi chú

    Tất cả các trình điều khiển tích hợp đều yêu cầu PDO. Bạn nên đảm bảo rằng bạn đã cài đặt đúng tiện ích mở rộng PDO

    Cài đặt CakePHP

    Trước khi bắt đầu, bạn nên đảm bảo rằng phiên bản PHP của bạn đã được cập nhật

    Bạn nên có PHP 5. 6 [CLI] hoặc cao hơn. Phiên bản PHP của máy chủ web của bạn cũng phải là 5. 6 trở lên và phải giống với phiên bản mà giao diện dòng lệnh [CLI] của bạn sử dụng

    Cài đặt Trình soạn nhạc

    CakePHP sử dụng Composer, một công cụ quản lý phụ thuộc, làm phương pháp được hỗ trợ chính thức để cài đặt

    • Cài đặt Composer trên Linux và macOS

      1. Chạy tập lệnh cài đặt như được mô tả trong tài liệu chính thức của Trình soạn thảo và làm theo hướng dẫn để cài đặt Trình soạn thảo

      2. Thực hiện lệnh sau để di chuyển nhà soạn nhạc. phar vào một thư mục trong đường dẫn của bạn

        mv composer.phar /usr/local/bin/composer
        

    • Cài đặt Composer trên Windows

      Đối với hệ thống Windows, bạn có thể tải xuống trình cài đặt Windows của Composer tại đây. Bạn có thể tìm thêm hướng dẫn về trình cài đặt Windows của Composer trong README tại đây

    Tạo dự án CakePHP

    Bạn có thể tạo một ứng dụng CakePHP mới bằng cách sử dụng lệnh

    HTTPDUSER=`ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1`
    setfacl -R -m u:${HTTPDUSER}:rwx tmp
    setfacl -R -d -m u:${HTTPDUSER}:rwx tmp
    setfacl -R -m u:${HTTPDUSER}:rwx logs
    setfacl -R -d -m u:${HTTPDUSER}:rwx logs
    
    0 của nhà soạn nhạc

    composer create-project --prefer-dist cakephp/app:"^3.10" my_app_name
    

    Sau khi Trình soạn thảo hoàn tất tải xuống khung ứng dụng và thư viện CakePHP cốt lõi, bạn nên cài đặt ứng dụng CakePHP đang hoạt động qua Trình soạn thảo. Hãy chắc chắn để giữ nhà soạn nhạc. json và nhà soạn nhạc. khóa tệp với phần còn lại của mã nguồn của bạn

    Bây giờ bạn có thể truy cập đường dẫn đến nơi bạn đã cài đặt ứng dụng CakePHP của mình và xem trang chủ mặc định. Để thay đổi nội dung của trang này, hãy chỉnh sửa src/Template/Pages/home. ctp

    Mặc dù trình soạn thảo là phương pháp cài đặt được đề xuất, nhưng có sẵn các bản tải xuống được cài đặt sẵn trên Github. Những bản tải xuống đó chứa khung ứng dụng với tất cả các gói của nhà cung cấp được cài đặt. Ngoài ra, nó bao gồm

    HTTPDUSER=`ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1`
    setfacl -R -m u:${HTTPDUSER}:rwx tmp
    setfacl -R -d -m u:${HTTPDUSER}:rwx tmp
    setfacl -R -m u:${HTTPDUSER}:rwx logs
    setfacl -R -d -m u:${HTTPDUSER}:rwx logs
    
    1 để bạn có mọi thứ bạn cần để sử dụng tiếp

    Cài đặt sử dụng Lò nướng

    Một cách nhanh chóng khác để cài đặt CakePHP là thông qua Oven. Đó là một tập lệnh PHP nhỏ kiểm tra các yêu cầu hệ thống cần thiết và tạo một ứng dụng CakePHP mới

    Ghi chú

    QUAN TRỌNG. Đây không phải là một kịch bản triển khai. Nó nhằm mục đích giúp các nhà phát triển cài đặt CakePHP lần đầu tiên và thiết lập môi trường phát triển một cách nhanh chóng. Môi trường sản xuất nên xem xét một số yếu tố khác, như quyền đối với tệp, cấu hình máy chủ ảo, v.v.

    Quyền

    CakePHP sử dụng thư mục tmp cho một số hoạt động khác nhau. Mô tả mô hình, chế độ xem được lưu trong bộ nhớ cache và thông tin phiên là một vài ví dụ. Thư mục bản ghi được sử dụng để ghi tệp nhật ký theo công cụ

    HTTPDUSER=`ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1`
    setfacl -R -m u:${HTTPDUSER}:rwx tmp
    setfacl -R -d -m u:${HTTPDUSER}:rwx tmp
    setfacl -R -m u:${HTTPDUSER}:rwx logs
    setfacl -R -d -m u:${HTTPDUSER}:rwx logs
    
    2 mặc định

    Như vậy, hãy đảm bảo rằng các thư mục log, tmp và tất cả các thư mục con của nó trong bản cài đặt CakePHP của bạn đều có thể ghi được bởi người dùng máy chủ web. Quá trình cài đặt của Composer làm cho tmp và các thư mục con của nó có thể ghi được trên toàn cầu để khởi động và chạy nhanh mọi thứ nhưng bạn có thể cập nhật các quyền để bảo mật tốt hơn và giữ cho chúng chỉ có thể ghi được đối với người dùng máy chủ web

    Một vấn đề phổ biến là các thư mục nhật ký và tmp và thư mục con phải được ghi bởi cả máy chủ web và người dùng dòng lệnh. Trên hệ thống UNIX, nếu người dùng máy chủ web của bạn khác với người dùng dòng lệnh của bạn, bạn có thể chạy các lệnh sau từ thư mục ứng dụng của mình chỉ một lần trong dự án của bạn để đảm bảo rằng các quyền sẽ được thiết lập đúng cách

    HTTPDUSER=`ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1`
    setfacl -R -m u:${HTTPDUSER}:rwx tmp
    setfacl -R -d -m u:${HTTPDUSER}:rwx tmp
    setfacl -R -m u:${HTTPDUSER}:rwx logs
    setfacl -R -d -m u:${HTTPDUSER}:rwx logs
    

    Để sử dụng các công cụ bảng điều khiển CakePHP, bạn cần đảm bảo rằng tệp

    HTTPDUSER=`ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1`
    setfacl -R -m u:${HTTPDUSER}:rwx tmp
    setfacl -R -d -m u:${HTTPDUSER}:rwx tmp
    setfacl -R -m u:${HTTPDUSER}:rwx logs
    setfacl -R -d -m u:${HTTPDUSER}:rwx logs
    
    3 có thể thực thi được. Trên *nix hoặc macOS, bạn có thể thực thi

    Trên Windows,. tệp bat phải được thực thi rồi. Nếu bạn đang sử dụng Vagrant hoặc bất kỳ môi trường ảo hóa nào khác, mọi thư mục dùng chung cần được chia sẻ với quyền thực thi [Vui lòng tham khảo tài liệu về môi trường ảo hóa của bạn về cách thực hiện việc này]

    Nếu vì bất kỳ lý do gì, bạn không thể thay đổi quyền của tệp

    HTTPDUSER=`ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1`
    setfacl -R -m u:${HTTPDUSER}:rwx tmp
    setfacl -R -d -m u:${HTTPDUSER}:rwx tmp
    setfacl -R -m u:${HTTPDUSER}:rwx logs
    setfacl -R -d -m u:${HTTPDUSER}:rwx logs
    
    3, bạn có thể chạy bảng điều khiển CakePHP với

    Máy chủ phát triển

    Cài đặt phát triển là cách nhanh nhất để thiết lập CakePHP. Trong ví dụ này, chúng tôi sử dụng bảng điều khiển của CakePHP để chạy máy chủ web tích hợp của PHP, máy chủ này sẽ cung cấp ứng dụng của bạn tại http. //chủ nhà. Hải cảng. Từ thư mục ứng dụng, thực thi

    Theo mặc định, không có bất kỳ đối số nào được cung cấp, điều này sẽ phục vụ ứng dụng của bạn tại http. //máy chủ cục bộ. 8765/

    Nếu có xung đột với localhost hoặc cổng 8765, bạn có thể yêu cầu bảng điều khiển CakePHP chạy máy chủ web trên một máy chủ và/hoặc cổng cụ thể bằng cách sử dụng các đối số sau

    bin/cake server -H 192.168.13.37 -p 5673
    

    Điều này sẽ phục vụ ứng dụng của bạn tại http. //192. 168. 13. 37. 5673/

    Đó là nó. Ứng dụng CakePHP của bạn được thiết lập và chạy mà không cần phải định cấu hình máy chủ web

    Ghi chú

    Hãy thử

    HTTPDUSER=`ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1`
    setfacl -R -m u:${HTTPDUSER}:rwx tmp
    setfacl -R -d -m u:${HTTPDUSER}:rwx tmp
    setfacl -R -m u:${HTTPDUSER}:rwx logs
    setfacl -R -d -m u:${HTTPDUSER}:rwx logs
    
    5 nếu máy chủ không thể truy cập được từ các máy chủ khác

    Cảnh báo

    Máy chủ phát triển không bao giờ được sử dụng trong môi trường sản xuất. Nó chỉ nhằm mục đích là một máy chủ phát triển cơ bản

    Nếu bạn muốn sử dụng một máy chủ web thực, bạn có thể di chuyển bản cài đặt CakePHP của mình [bao gồm cả các tệp ẩn] bên trong thư mục gốc tài liệu của máy chủ web của bạn. Sau đó, bạn có thể trỏ trình duyệt web của mình vào thư mục mà bạn đã chuyển các tệp vào đó và xem ứng dụng của bạn đang hoạt động

    Sản lượng

    Cài đặt sản xuất là một cách linh hoạt hơn để thiết lập CakePHP. Sử dụng phương pháp này cho phép toàn bộ miền hoạt động như một ứng dụng CakePHP duy nhất. Ví dụ này sẽ giúp bạn cài đặt CakePHP ở bất cứ đâu trên hệ thống tệp của bạn và làm cho nó có sẵn tại http. //www. thí dụ. com. Lưu ý rằng cài đặt này có thể yêu cầu quyền thay đổi

    HTTPDUSER=`ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1`
    setfacl -R -m u:${HTTPDUSER}:rwx tmp
    setfacl -R -d -m u:${HTTPDUSER}:rwx tmp
    setfacl -R -m u:${HTTPDUSER}:rwx logs
    setfacl -R -d -m u:${HTTPDUSER}:rwx logs
    
    6 trên máy chủ web Apache

    Sau khi cài đặt ứng dụng của bạn bằng một trong các phương pháp trên vào thư mục bạn chọn - chúng tôi sẽ cho rằng bạn đã chọn /cake_install - thiết lập sản xuất của bạn sẽ trông như thế này trên hệ thống tệp

    /cake_install/
        bin/
        config/
        logs/
        plugins/
        src/
        tests/
        tmp/
        vendor/
        webroot/ [this directory is set as DocumentRoot]
        .gitignore
        .htaccess
        .travis.yml
        composer.json
        index.php
        phpunit.xml.dist
        README.md
    

    Các nhà phát triển sử dụng Apache nên đặt chỉ thị

    HTTPDUSER=`ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1`
    setfacl -R -m u:${HTTPDUSER}:rwx tmp
    setfacl -R -d -m u:${HTTPDUSER}:rwx tmp
    setfacl -R -m u:${HTTPDUSER}:rwx logs
    setfacl -R -d -m u:${HTTPDUSER}:rwx logs
    
    6 cho miền thành

    DocumentRoot /cake_install/webroot
    

    Nếu máy chủ web của bạn được định cấu hình đúng, bây giờ bạn sẽ thấy ứng dụng CakePHP của mình có thể truy cập được tại http. //www. thí dụ. com

    Đốt nó lên

    Được rồi, hãy xem CakePHP hoạt động. Tùy thuộc vào thiết lập bạn đã sử dụng, bạn nên trỏ trình duyệt của mình tới http. //thí dụ. com/ hoặc http. //máy chủ cục bộ. 8765/. Tại thời điểm này, bạn sẽ thấy trang chủ mặc định của CakePHP và một thông báo cho bạn biết trạng thái kết nối cơ sở dữ liệu hiện tại của bạn

    Xin chúc mừng. Bạn đã sẵn sàng để tạo ứng dụng CakePHP đầu tiên của mình

    Viết lại URL

    apache

    Mặc dù CakePHP được xây dựng để hoạt động với mod_rewrite ngay lập tức–và thường thì như vậy–chúng tôi nhận thấy rằng một số người dùng gặp khó khăn trong việc làm cho mọi thứ hoạt động tốt trên hệ thống của họ

    Dưới đây là một vài điều bạn có thể thử để nó chạy chính xác. Trước tiên hãy xem httpd của bạn. conf. [Đảm bảo rằng bạn đang chỉnh sửa hệ thống httpd. conf thay vì httpd dành riêng cho người dùng hoặc trang web. conf. ]

    Các tệp này có thể khác nhau giữa các bản phân phối và phiên bản Apache khác nhau. Bạn cũng có thể xem qua https. //wiki. apache. org/http/Distros Bố cục mặc định để biết thêm thông tin

    1. Hãy chắc chắn rằng một. ghi đè htaccess được cho phép và AllowOverride được đặt thành Tất cả cho đúng DocumentRoot. Bạn sẽ thấy một cái gì đó tương tự như

      # Each directory to which Apache has access can be configured with respect
      # to which services and features are allowed and/or disabled in that
      # directory [and its subdirectories].
      #
      # First, we configure the "default" to be a very restrictive set of
      # features.
      
          Options FollowSymLinks
          AllowOverride All
      #    Order deny,allow
      #    Deny from all
      
      

    2. Đảm bảo bạn đang tải mod_rewrite chính xác. Bạn sẽ thấy một cái gì đó như

      LoadModule rewrite_module libexec/apache2/mod_rewrite.so
      

      Trong nhiều hệ thống, những thứ này sẽ được nhận xét theo mặc định, vì vậy bạn có thể chỉ cần xóa các ký hiệu # ở đầu

      Sau khi bạn thực hiện các thay đổi, hãy khởi động lại Apache để đảm bảo các cài đặt đang hoạt động

      Xác minh rằng bạn. htaccess thực sự nằm trong đúng thư mục. Một số hệ điều hành xử lý các tệp bắt đầu bằng ‘. ’ như ẩn và do đó sẽ không sao chép chúng

    3. Đảm bảo rằng bản sao CakePHP của bạn đến từ phần tải xuống của trang web hoặc kho lưu trữ Git của chúng tôi và đã được giải nén chính xác bằng cách kiểm tra. tập tin htaccess

      Thư mục ứng dụng CakePHP [sẽ được sao chép vào thư mục trên cùng của ứng dụng của bạn bằng cách nướng]

         RewriteEngine on
         RewriteRule    ^$    webroot/    [L]
         RewriteRule    [.*] webroot/$1    [L]
      
      

      Thư mục webroot của CakePHP [sẽ được sao chép vào thư mục gốc của ứng dụng của bạn bằng cách nướng]

          RewriteEngine On
          RewriteCond %{REQUEST_FILENAME} !-f
          RewriteRule ^ index.php [L]
      
      

      Nếu trang CakePHP của bạn vẫn gặp sự cố với mod_rewrite, bạn có thể muốn thử sửa đổi cài đặt cho Máy chủ ảo. Trên Ubuntu, chỉnh sửa tệp /etc/apache2/sites-available/default [vị trí phụ thuộc vào phân phối]. Trong tệp này, đảm bảo rằng

      HTTPDUSER=`ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1`
      setfacl -R -m u:${HTTPDUSER}:rwx tmp
      setfacl -R -d -m u:${HTTPDUSER}:rwx tmp
      setfacl -R -m u:${HTTPDUSER}:rwx logs
      setfacl -R -d -m u:${HTTPDUSER}:rwx logs
      
      8 được đổi thành
      HTTPDUSER=`ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1`
      setfacl -R -m u:${HTTPDUSER}:rwx tmp
      setfacl -R -d -m u:${HTTPDUSER}:rwx tmp
      setfacl -R -m u:${HTTPDUSER}:rwx logs
      setfacl -R -d -m u:${HTTPDUSER}:rwx logs
      
      9, vì vậy bạn có

      composer create-project --prefer-dist cakephp/app:"^3.10" my_app_name
      
      0

      Trên macOS, một giải pháp khác là sử dụng công cụ virtualhostx để tạo Máy chủ ảo để trỏ đến thư mục của bạn

      Đối với nhiều dịch vụ lưu trữ [GoDaddy, 1and1], máy chủ web của bạn đang được phục vụ từ thư mục người dùng đã sử dụng mod_rewrite. Nếu bạn đang cài đặt CakePHP vào thư mục người dùng [http. //thí dụ. com/~username/cakephp/] hoặc bất kỳ cấu trúc URL nào khác đã sử dụng mod_rewrite, bạn sẽ cần thêm các câu lệnh RewriteBase vào. htaccess mà CakePHP sử dụng [. htaccess, webroot/. htaccess]

      Điều này có thể được thêm vào cùng một phần với chỉ thị RewriteEngine, ví dụ: webroot của bạn. htaccess sẽ trông như thế nào

      composer create-project --prefer-dist cakephp/app:"^3.10" my_app_name
      
      1

      Chi tiết về những thay đổi đó sẽ phụ thuộc vào thiết lập của bạn và có thể bao gồm những thứ bổ sung không liên quan đến CakePHP. Vui lòng tham khảo tài liệu trực tuyến của Apache để biết thêm thông tin

    4. [Tùy chọn] Để cải thiện thiết lập sản xuất, bạn nên ngăn không cho CakePHP phân tích cú pháp nội dung không hợp lệ. Sửa đổi webroot của bạn. htaccess thành một cái gì đó như

      composer create-project --prefer-dist cakephp/app:"^3.10" my_app_name
      
      2

      Điều trên sẽ ngăn nội dung không chính xác được gửi đến chỉ mục. php và thay vào đó hiển thị trang 404 của máy chủ web của bạn

      Ngoài ra, bạn có thể tạo một trang HTML 404 phù hợp hoặc sử dụng CakePHP 404 tích hợp sẵn mặc định bằng cách thêm một chỉ thị

      bin/cake server -H 192.168.13.37 -p 5673
      
      0

      composer create-project --prefer-dist cakephp/app:"^3.10" my_app_name
      
      3

    nginx

    nginx không sử dụng. htaccess như Apache, vì vậy cần phải tạo các URL được viết lại đó trong cấu hình có sẵn của trang web. Điều này thường được tìm thấy trong

    bin/cake server -H 192.168.13.37 -p 5673
    
    1. Tùy thuộc vào thiết lập của bạn, bạn sẽ phải sửa đổi điều này, nhưng ít nhất, bạn sẽ cần PHP chạy dưới dạng phiên bản FastCGI. Cấu hình sau chuyển hướng yêu cầu tới
    bin/cake server -H 192.168.13.37 -p 5673
    
    2

    composer create-project --prefer-dist cakephp/app:"^3.10" my_app_name
    
    4

    Một mẫu của chỉ thị máy chủ như sau

    composer create-project --prefer-dist cakephp/app:"^3.10" my_app_name
    
    5

    Ghi chú

    Các cấu hình gần đây của PHP-FPM được đặt để nghe ổ cắm unix php-fpm thay vì cổng TCP 9000 trên địa chỉ 127. 0. 0. 1. Nếu bạn gặp lỗi 502 cổng xấu từ cấu hình trên, hãy thử cập nhật

    bin/cake server -H 192.168.13.37 -p 5673
    
    3 để sử dụng đường dẫn ổ cắm unix [ví dụ:. fastcgi_pass unix. /var/run/php/php7. 1 khung hình/phút. sock;] thay vì cổng TCP

    IIS7 [máy chủ Windows]

    IIS7 không hỗ trợ nguyên bản. tập tin htaccess. Mặc dù có các tiện ích bổ sung có thể thêm hỗ trợ này, nhưng bạn cũng có thể nhập các quy tắc htaccess vào IIS để sử dụng các bản viết lại gốc của CakePHP. Để làm điều này, hãy làm theo các bước sau

    composer create-project --prefer-dist cakephp/app:"^3.10" my_app_name
    
    6

    Một khi web. config được tạo bằng các quy tắc viết lại thân thiện với IIS chính xác, các liên kết, CSS, JavaScript và định tuyến lại của CakePHP sẽ hoạt động chính xác

    Tôi không thể sử dụng viết lại URL

    Nếu bạn không muốn hoặc không thể chạy mod_rewrite [hoặc một số mô-đun tương thích khác] trên máy chủ của mình, bạn sẽ cần sử dụng các URL đẹp được tích hợp sẵn của CakePHP. Trong cấu hình/ứng dụng. php, bỏ ghi chú dòng giống như

    composer create-project --prefer-dist cakephp/app:"^3.10" my_app_name
    
    7

    Cũng loại bỏ những. tập tin htaccess

    composer create-project --prefer-dist cakephp/app:"^3.10" my_app_name
    
    8

    Điều này sẽ làm cho các URL của bạn trông giống như www. thí dụ. com/chỉ mục. php/tên bộ điều khiển/tên hành động/thông số thay vì www. thí dụ. com/tên bộ điều khiển/tên hành động/tham số

    Chủ Đề