Cách cài đặt và cấu hình Slim Framework trên Ubuntu 14.04
Yêu cầu
Hướng dẫn này sẽ minh họa các bước cần thiết để cài đặt và cấu hình Slim Framework trên Digital Ocean VPS. Đến cuối hướng dẫn này, bạn sẽ có một version Slim Framework hoạt động, được tổ chức tốt, hoàn chỉnh với cấu trúc folder mà bạn có thể làm cơ sở cho dự án của bạn .
Hướng dẫn này giả định bạn đã cài đặt LAMP (hoặc ưu tiên của bạn) trên Ubuntu. Nếu chưa, bạn có thể tham khảo bài viết này giúp bạn cài đặt LAMP stack trên Ubuntu .
Nếu ứng dụng của bạn không sử dụng MySQL, bạn có thể bỏ qua cài đặt của nó. Điều tối thiểu bạn cần cài đặt là một web server Apache ( với Mod_Rewrite ) và PHP (phiên bản tối thiểu 5.3).
Cài đặt nhanh cho các yêu cầu
1. Cài đặt Apache
apt-get update apt-get install apache2
2. Cài đặt PHP
apt-get install php5 libapache2-mod-php5 php5-mcrypt
3. Bật mod_rewrite
a2enmod rewrite
4. Sửa đổi file cấu hình Apache
Sửa đổi file cấu hình Apache và thay đổi AllowOverride Không thành AllowOverride Tất cả cho root tài liệu. Tùy thuộc vào cài đặt server của bạn, file cấu hình này có thể là các file nào sau đây:
-
/etc/apache2/apache2.conf
-
/etc/apache2/sites-enabled/000-default
-
/etc/apache2/sites-available/default
Trong file cấu hình, tìm phần trông giống như sau:
<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
Thay đổi điều này thành phần sau và lưu file :
<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
5. Khởi động lại Apache
service apache2 restart
Hướng dẫn này cũng giả định bạn đã quen với các kiến thức cơ bản về Linux .
Slim Framework là gì?
Slim là một trong những microframeworks open-souce , phổ biến nhất dành cho PHP trên thị trường. Nó cực kỳ hiệu quả, nhanh chóng và dễ sử dụng. Mặc dù nó lý tưởng để phát triển các ứng dụng web có kích thước vừa và nhỏ, nhưng nó cũng được dùng khá hiệu quả để xây dựng các ứng dụng PHP có khả năng mở rộng lớn.
Slim được đóng gói với các tiện ích phổ biến nhất mà bạn mong đợi trong một khuôn khổ:
- Bộ định tuyến dễ sử dụng, mạnh mẽ và linh hoạt
- Chế độ xem tùy chỉnh để hiển thị các mẫu
- Cookie an toàn
- HTTP caching
- Xử lý lỗi và gỡ lỗi dễ sử dụng
- Cấu hình đơn giản
Cài đặt
Cài đặt Slim Framework bao gồm ba bước
- Download khung mỏng
- Extract từ file Zip
- Sao chép Khung mỏng vào một vị trí chung
1. Download Slim Framework
Bạn có thể download Slim Framework bằng lệnh sau:
wget https://github.com/codeguy/Slim/zipball/master
Thao tác này sẽ tìm nạp khuôn khổ dưới dạng zip
và lưu trữ nó trong folder hiện tại với tên master
.
2. Extract từ file Zip
Nội dung của file zip có thể được extract bằng lệnh sau:
unzip master -d ./
Lưu ý: Nếu bạn gặp lỗi extract không được cài đặt, bạn có thể cài đặt nó bằng cách sử dụng lệnh apt-get install unzip
và sau đó thực hiện lệnh trên để extract tất cả các file .
Lệnh trên sẽ extract các file trong một folder có tên như codeguy-Slim-3a2ac72
. Thư mục này chứa một folder có tên Slim là folder khung.
3. Sao chép Khung mỏng đến một vị trí chung
Bây giờ ta sẽ sao chép folder codeguy-Slim-3a2ac72/Slim
vào một vị trí phổ biến như /usr/local/Slim
từ đó nó sẽ có thể truy cập vào tất cả các dự án trên server này sử dụng Slim. Điều này sẽ tránh trùng lặp và ngăn chặn bất kỳ vấn đề bảo trì nào có thể phát sinh từ các cài đặt trùng lặp.
Hãy sao chép folder bằng lệnh sau:
cp -r ./codeguy-Slim-3a2ac72/Slim /usr/local/Slim
Lưu ý: Tên của folder được codeguy-Slim-3a2ac72
(trong trường hợp này là codeguy-Slim-3a2ac72
) có thể hơi khác nếu bạn download version Slim khác. Đảm bảo sửa đổi tên của folder trong lệnh trên cho phù hợp
Khi điều này được thực hiện, bất kỳ dự án nào của bạn sử dụng Slim Framework đều có thể tham chiếu nó từ vị trí này.
Lưu ý quan trọng: Rất nhiều hướng dẫn cài đặt các khung công tác trong folder chung / root tài liệu (như /var/www/Slim
). Cài đặt các file khung bên ngoài folder chung / root tài liệu (như đã thực hiện ở trên) làm cho ứng dụng tương đối an toàn hơn vì các file khung sẽ không thể truy cập được trong trình duyệt.
Tổ chức dự án dựa trên mỏng của bạn
Một dự án Slim thường trải rộng trên ba folder chính:
1. Thư mục khung mỏng
Thư mục này chứa các file khung và là folder đã được sao chép ở bước trước (/ usr / local / Slim)
2. Thư mục dự án
Thư mục này chứa các file dự án của bạn như bộ định tuyến, khung nhìn, mô hình, v.v. Là một microframework, Slim không thực thi bất kỳ cấu trúc dự án cụ thể nào. Điều này nghĩa là bạn có thể tự do cấu trúc các file dự án của bạn theo bất kỳ cách nào bạn cho là phù hợp. Điều này đặc biệt hữu ích trong trường hợp các nhà phát triển đã quen với một cấu trúc folder cụ thể.
Thư mục này có thể nằm ở bất kỳ đâu trên server , nhưng lý tưởng nhất là nó không nên ở vị trí có thể truy cập web. Bạn có thể đặt nó trong /usr/local
hoặc trong folder home của bạn. Ví dụ: nếu bạn tạo trong dự án trong một folder có tên HelloSlim
, nó có thể được đặt tại /usr/local/HelloSlim
hoặc ~/HelloSlim
hoặc bất kỳ vị trí nào khác bạn muốn .
Đây là một cách sắp xếp các file trong folder này:
HelloSlim |- Routes | |- route1.php | |- route2.php |- Models | |- model1.php | |- model2.php |- Views | |- footer.php | |- header.php | |- sidebar.php | |- view1.php | |- view2.php |- Class | |- class1.php | |- class2.php |- routes.php //contains 'include' statements for all routes in the 'Routes' folder |- includes.php //contains 'include' statements for all models/classes in the 'Models/Class' folders
Bạn có thể tạo cấu trúc folder này bằng cách thực hiện các lệnh sau:
mkdir /usr/local/HelloSlim mkdir /usr/local/HelloSlim/Routes mkdir /usr/local/HelloSlim/Models mkdir /usr/local/HelloSlim/Views mkdir /usr/local/HelloSlim/Class
Lưu ý: Bạn có thể sử dụng cấu trúc folder này hoặc thay đổi hoàn toàn để phù hợp với sở thích của bạn .
3. Thư mục root / Public của tài liệu
Đây là folder có thể truy cập web (thường nằm tại /var/www
). Thư mục này chỉ chứa hai file liên quan đến Slim:
- index.php
- .htaccess
Thư mục này cũng sẽ chứa tất cả các file kịch bản, kiểu và hình ảnh của dự án. Để giữ mọi thứ ngăn nắp, bạn có thể chia chúng thành các folder scripts
, styles
và images
tương ứng.
Đây là cấu trúc mẫu của folder root tài liệu:
Document Root (eg. /var/www/) |- scripts | |- jquery.min.js | |- custom.js |- styles | |- style.css | |- bootstrap.min.css |- images | |- logo.png | |- banner.jpg |- .htaccess |- index.php
Nội dung file
Giả sử rằng dự án của bạn có cấu trúc được xác định ở trên, bạn cần điền vào các .htaccess
và index.php
(trong folder root ) với các nội dung tương ứng sau:
.htaccess
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [QSA,L]
index.php
<?php require '/usr/local/Slim/Slim.php'; //include the framework in the project \Slim\Slim::registerAutoloader(); //register the autoloader $projectDir = '/usr/local/HelloSlim'; //define the directory containing the project files require "$projectDir/includes.php"; //include the file which contains all the project related includes $app = new \Slim\Slim(array( 'templates.path' => '/usr/local/HelloSlim/Views' )); //instantiate a new Framework Object and define the path to the folder that holds the views for this project require "$projectDir/routes.php"; //include the file which contains all the routes/route inclusions $app->run(); //load the application
Để hoàn thành hướng dẫn này giả định dự án đã được sắp xếp theo cấu trúc folder được định nghĩa trong phần trước, các routes.php
và includes.php
file (trong folder dự án) nên có các nội dung sau:
route.php
<?php require '/usr/local/HelloSlim/Routes/route1.php'; require '/usr/local/HelloSlim/Routes/route2.php';
Lưu ý: Bạn có thể tạo các tuyến trực tiếp trong file này thay vì bao gồm các file khác có chứa các tuyến. Tuy nhiên, việc xác định các tuyến đường trong các file khác nhau, được group hợp lý sẽ giúp dự án của bạn dễ bảo trì hơn
include.php
<?php require "/usr/local/HelloSlim/Class/class1.php"; require "/usr/local/HelloSlim/Class/class2.php"; require "/usr/local/HelloSlim/Models/model1.php"; require "/usr/local/HelloSlim/Models/model2.php";
Ứng dụng mẫu mỏng
Đến đây bạn đã biết cách cài đặt ứng dụng Slim, hãy tạo một ứng dụng đơn giản thực hiện như sau:
- Xử lý các tuyến tĩnh (GET & POST)
- Xử lý các tuyến đường động
- Sử dụng lượt xem
Lưu ý: Ứng dụng mẫu này sẽ giả định Slim đã được triển khai như mô tả ở trên.
Hãy vạch ra các yêu cầu cho ứng dụng mẫu này:
<table width = “100%”>
<tr>
<th> Tuyến đường </th>
<th> Loại </th>
<th> Hành động </th>
</tr>
<tr>
<td> / xin chào </td>
<td> NHẬN (tĩnh) </td>
<td> Hiển thị Chế độ xem tĩnh </td>
</tr>
<tr>
<td> / xin chào / NAME </td>
<td> NHẬN (động) </td>
<td> Hiển thị Chế độ xem động </td>
</tr>
<tr>
<td> / chào </td>
<td> BÀI ĐĂNG </td>
<td> Hiển thị Chế độ xem sau khi yêu cầu ĐĂNG </td>
</tr>
</table>
Dự án này sẽ yêu cầu các file sau được tạo trong folder Ứng dụng ( /usr/local/HelloSlim/
):
HelloSlim |- Routes | |- getRoutes.php | |- postRoutes.php |- Views | |- footer.php | |- header.php | |- hello.php | |- greet.php |- routes.php
Thư mục chung / root tài liệu sẽ trông giống như sau:
Đây là cấu trúc mẫu của folder root tài liệu:
Document Root (eg. /var/www/) |- .htaccess |- index.php
Bây giờ điền các file này như sau:
1. /var/www/.htaccess
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [QSA,L]
2. /var/www/index.php
<?php require '/usr/local/Slim/Slim.php'; //include the framework in the project \Slim\Slim::registerAutoloader(); //register the autoloader $projectDir = '/usr/local/HelloSlim'; //define the directory containing the project files $app = new \Slim\Slim(array( 'templates.path' => '/usr/local/HelloSlim/Views' )); //instantiate a new Framework Object and define the path to the folder that holds the views for this project require "$projectDir/routes.php"; //include the file which contains all the routes/route inclusions $app->run(); //load the application
3. /usr/local/HelloSlim/Routes/getRoutes.php
<?php $app->get('/', function(){ echo 'This is a simple starting page'; }); //The following handles any request to the /hello route $app->get('/hello', function() use ($app){ // the following statement invokes and displays the hello.php View $app->render('hello.php'); }); //The following handles any dynamic requests to the /hello/NAME routes (like /hello/world) $app->get('/hello/:name', function($name) use ($app){ // the following statement invokes and displays the hello.php View. It also passes the $name variable in an array so that the view can use it. $app->render('hello.php', array('name' => $name)); });
4. /usr/local/HelloSlim/Routes/postRoutes.php
<?php //The following handles the POST requests sent to the /greet route $app->post('/greet', function() use ($app){ //The following statement checks if 'name' has been POSTed. If it has, it assigns the value to the $name variable. If it hasn't been set, it assigns a blank string. $name = (null !== $app->request->post('name'))?$app->request->post('name'):''; //The following statement checks if 'greeting' has been POSTed. If it has, it assigns the value to the $greeting variable. If it hasn't been set, it assigns a blank string. $greeting = (null !== $app->request->post('greeting'))?$app->request->post('greeting'):''; // the following statement invokes and displays the 'greet.php' View. It also passes the $name & $greeting variables in an array so that the view can use them. $app->render('greet.php', array( 'name' => $name, 'greeting' => $greeting )); });
5. /usr/local/HelloSlim/Views/footer.php
<small>Copyright notice...</small> </body> </html>
6. /usr/local/HelloSlim/Views/header.php
<pre>
<! DOCTYPE html>
<html>
<head>
<title> Ứng dụng mẫu mỏng </title>
</ đầu <
<body>
</pre>
7. /usr/local/HelloSlim/Views/hello.php
*** <?php include('header.php'); ?> *** <h1>Hello <?php echo isset($name)?$name:''; ?></h1> <!-- The above line handles both the dynamic and the static GET routes that we implemented in the getRoutes.php file. *** <h2>Send a greeting</h2> <form method='POST' action='/greet'> <label>Name</label><br> <input name='name' placeholder='Who do you want to greet?'><br> <label>Greeting</label><br> <input name='greeting' placeholder='Your greeting message'><br> <input type='submit' value='Greet!'> </form> *** <?php include('footer.php'); ?>
8. /usr/local/HelloSlim/Views/greet.php
<?php include('header.php'); echo "<p>$greeting, $name</p><p><a href='/hello'>First Page</a></p>"; include('footer.php');
9. /usr/local/HelloSlim/routes.php
<?php include 'Routes/getRoutes.php'; include 'Routes/postRoutes.php';
Ảnh chụp màn hình ứng dụng mẫu
Nếu bạn truy cập ứng dụng mẫu mới tạo của bạn tại http://yourdomain.com/
, bạn sẽ thấy một cái gì đó giống như sau:
Lưu ý: Nếu bạn không sử dụng domain với server Digital Ocean của bạn , hãy sử dụng địa chỉ IP của server thay thế.
Nếu bạn truy cập http://yourdomain.com/hello
, bạn sẽ nhận được những thứ sau:
Nếu bạn truy cập http://yourdomain.com/hello/World
, bạn sẽ nhận được những thứ sau:
Lưu ý: Nếu bạn thay thế 'Thế giới' trong URL bằng một từ khác, nội dung của trang sẽ thay đổi tương ứng.
Để kiểm tra lộ trình ĐĂNG, hãy nhập tên và lời chào vào các trường có sẵn và nhấn 'Chào!' như sau:
Sau khi nhấn "Greet!" , bạn sẽ nhận được thông tin như sau:
Từ cuối cùng
Đến đây bạn đã cài đặt version làm việc có tổ chức tốt của Slim framework, bạn đã sẵn sàng bắt đầu làm việc với dự án của bạn . Nếu bạn cần trợ giúp thêm với Slim, bạn luôn có thể tham khảo tài liệu chính thức toàn diện .
<div class = “author”> Gửi bởi: <a href=osystemhttp://www.php.buzzosystem> Jay </a> </div>
Các tin liên quan
Cách thêm và xóa người dùng trên VPS Ubuntu 14.042014-04-22
Cách cài đặt Ruby on Rails trên Ubuntu 14.04 bằng RVM
2014-04-22
Cách cài đặt kho lưu trữ trình soạn nhạc tùy chỉnh trên Ubuntu
2014-04-21
Cách cài đặt và sử dụng Fish Shell trên VPS Ubuntu
2014-04-09
Cách thiết lập hệ thống tệp phân tán Tahoe-LAFS trên server Ubuntu 14.04
2014-04-03
Cách cài đặt Hadoop trên Ubuntu 13.10
2014-03-20
Cách cài đặt ProcessWire trên VPS Ubuntu
2014-03-20
Cách cài đặt Hadoop trên Ubuntu 13.10
2014-03-20
Cách cài đặt HHVM (Máy ảo HipHop) trên VPS Ubuntu 13.10
2014-03-18
Cách thiết lập server cloud Ubuntu cho ứng dụng web Python
2014-02-25