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_name9 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
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
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 logs0 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 logs1 để 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 logs2 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 logs3 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 logs3, 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 logs5 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 logs6 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 logs6 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
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
Đả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
Đả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ànhHTTPDUSER=`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
0Trê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
1Chi 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
[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
0composer 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 56731. 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 56732
composer create-project --prefer-dist cakephp/app:"^3.10" my_app_name4
Một mẫu của chỉ thị máy chủ như sau
composer create-project --prefer-dist cakephp/app:"^3.10" my_app_name5
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 56733 để 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_name6
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_name7
Cũng loại bỏ những. tập tin htaccess
composer create-project --prefer-dist cakephp/app:"^3.10" my_app_name8
Đ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ố