Bài viết mới nhất về "PHP"
Showing posts with label PHP. Show all posts

Hướng dẫn cài đặt LEMP (Linux, Nginx, MySQL, PHP) trên Ubuntu 16.04

Giới thiệu

LEMP server là một server chạy Linux, Nginx (đọc là Engine x), MySql và PHP (hoặc Perl/Python). Nó tương tự như LAMP server ngoại trừ việc web server nền tảng được giám sát bằng Nginx thay vì Apache.

Các bước cài đặt LEMP trên ubuntu

1. Cài đặt Nginx

Để cài đặt Nginx bạn chạy lệnh sau:

sudo apt-get update

Sau đó chạy tiếp lệnh sau:

sudo apt-get install nginx

Sau khi chạy xong, bạn mở trình duyệt lên truy cập vào ip hoặc domain của bạn để xem nó đã chạy được chưa.

Hướng dẫn cài đặt LEMP (Linux, Nginx, MySQL, PHP) trên Ubuntu 16.04

Nếu bạn thấy như hình, tức là bạn đã cài đặt thành công Nginx.

2. Cài đặt MySQL

Để cài đặt MySQL bạn chạy lệnh sau:

sudo apt-get install mysql-server

Trong quá trình cài đặt bạn sẽ phải cài đặt root mysql password

Sau khi cài đặt MySQL, kích hoạt bằng lệnh:

sudo mysql_install_db

Hoàn tất cài đặt

3. Cài đặt PHP

Chạy lệnh sau để cài PHP:

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install -y php5.6-fpm php5.6-mysql

Cấu hình PHP

sudo nano /etc/php/5.6/fpm/php.ini

Tìm dòng cgi.fix_pathinfo=1 (nhấn Ctrl+W trong nano), bỏ dấu ; ở đầu và thay 1 thành 0

Nhấn Ctrl + O tiếp nhấn Enter để lưu lại, sau đó nhấn Ctrl + X để thoát

4. Cấu hình Nginx

Mở file cấu hình Nginx lên bằng cách chạy lệnh sau:

sudo nano /etc/nginx/sites-available/default
server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;
    index index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }
}

Thay đổi một số thứ sau:

  1. Thêm index.php
  2. Thay đổi server_name thành tên miền hoặc ip.
  3. Chỉnh sửa lại phần "location ~ \.php$ {" và "location ~ /\.ht {"

Những phần thay đổi sẽ được hiển thị màu đỏ dưới đây:

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;
    index index.php index.html index.htm index.nginx-debian.html;

    server_name server_domain_or_IP;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php5.6-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}

Sau đó lưu lại và thoát ra

Để test cấu hình nginx bạn chạy lệnh sau:

sudo nginx -t

Restart Nginx

sudo systemctl reload nginx

5. Tạo file PHP để thử nghiệm

sudo nano /var/www/html/info.php

Thêm nội dung sau:

<?php
phpinfo();
?>

Lưu lại và thoát

Bây giờ từ máy tính bạn, mở trình duyệt lên truy cập vào tên miền hoặc ip của bạn thêm /info.php để xem

http://domain_or_ip/info.php

Lúc này bạn sẽ thấy thông tin máy chủ của bạn

Hướng dẫn cài đặt LEMP (Linux, Nginx, MySQL, PHP) trên Ubuntu 16.04

Như vậy bạn đã hoàn tất cài đặt LEMP.

Chúc bạn thành công!

Hướng dẫn cài đặt Laravel 5 trên Ubuntu 16.04, 15.10, 14.04, 12.04 & LinuxMint

Laravel là một PHP Framework, là một Framework dùng để xây dựng web application, được thiết kế dựa trên mô hình MVC (Model, Controller, View). Laravel hỗ trợ đắt lực cho các lập trình viên nhờ việc giảm bớt các tác vu phổ biến trong phần lớn các dự án web như  authentication, routing, sessions, và caching. Laravel đã kế thừa và học hỏi những ưu điểm từ các web framework đi  trước, không những là các PHP Framework mà còn từ Ruby on Rails, ASP.NET MVC, và Sinatra.
Laravel cung cấp đầy đủ các công cụ cần thiết cho cả các ứng dụng lớn, mạnh mẽ.

Theo trang Sitepoint thu thập thông tin và đánh giá vào khoảng tháng 03/2015 thì Laravel hiện đang là Framework phổ biến nhất.

Hướng dẫn cài đặt Laravel 5 trên Ubuntu 16.04, 15.10, 14.04, 12.04 & LinuxMint

A. Cài đặt

1. Cài đặt LAMP

Để bắt đầu với Laravel, đầu tiên chúng ta cần phải thiết lập một máy chủ LAMP. Nếu bạn đã cài đặt LAMP bỏ qua bước này.

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install -y php5.6

2. Cài đặt Apache2

sudo apt-get update
sudo apt-get install apache2

3. Cài đặt MySQL

sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql

4. Cài đặt Composer

Composer là cần thiết để cài đặt các gói thư viện trong Laravel. Sử dụng các câu lệnh sau để tiến hành download vầ cài đặt.

sudo apt-get update
sudo apt-get install curl php5-cli git
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

5. Cài đặt Laravel

Để cài đặt laravel bạn phải đáp ứng đủ yêu cầu sau:

  • PHP >= 5.6.4
  • OpenSSL PHP Extension
  • PDO PHP Extension
  • Mbstring PHP Extension
  • Tokenizer PHP Extension
  • XML PHP Extension

Di chuyển đến thư mục html

cd /var/www/html

Mình sẽ đặt tên project là blog

composer create-project --prefer-dist laravel/laravel blog

blog là tên project của mình, bạn có thể đặt tên khác cũng được tùy bạn

Hướng dẫn cài đặt Laravel 5 trên Ubuntu 16.04, 15.10, 14.04, 12.04 & LinuxMint

Quá trình cài đặt các gói thư viện sẽ mất thời gian.

Hướng dẫn cài đặt Laravel 5 trên Ubuntu 16.04, 15.10, 14.04, 12.04 & LinuxMint

Sau khi cài xong bạn cần cấp quyền cho các thu mục như sau

chmod -R 755 /var/www/html/blog
chmod -R 777 /var/www/html/blog/app/storage

Sau đó chạy lệnh sau:

php artisan serve

Hướng dẫn cài đặt Laravel 5 trên Ubuntu 16.04, 15.10, 14.04, 12.04 & LinuxMint

Sau đó bạn mở trình duyệt lên chạy http://localhost:8000/ sẽ thấy giao diện như sau

Hướng dẫn cài đặt Laravel 5 trên Ubuntu 16.04, 15.10, 14.04, 12.04 & LinuxMint

Cài đặt Apache, MySQL, PHP (LAMP) trên hệ điều hành Ubuntu

Giới thiệu LAMP

- LAMP là một thuật ngữ được dùng khá phổ biến hiện nay, là một hệ thống đáp ứng đầy đủ những tính năng khó nhất của ứng dụng web như: Database, Mail, SOAP.
- LAMP là cụm từ víêt tắt từ những từ: Linux, Apache, MySQL, PHP là một hệ thống hoàn toàn mở và miễn phí.
- Khóa học LAMP là khóa học đặc biệt và đầu tiên tại Việt Nam, bởi ngoài lý thuyết cơ bản nhất về hệ thống LAMP, học viên còn tiếp cận được những kỹ năng lập trình, tư duy logic, thuật toán, đủ khả năng trở thành một LAMP Webmaster.

Lý do chính chọn LAMP

- Miễn phí bản quyền phần mềm
- Được phép chỉnh sửa phần mềm phù hợp nhu cầu
- An toàn cao
- Tính cộng đồng
- Được miễn phí các phiên bản nâng cấp trong toàn bộ vòng đời sử dụng sản phẩm
- Tiết kiệm chi phí phát triển; các doanh nghiệp sử dụng lại những mã nguồn sẵn có để phát triển, cải tiến nâng cấp
- Không đòi hỏi cấu hình phần cứng quá cao cho việc triển khai ứng dụng
- Đa dạng trong việc lựa chọn nhà cung cấp sản phẩm
- Nâng cao uy tín, thương hiệu của doanh nghiệp đặc biệt khi đối tác kinh doanh là khách nước ngoài
- Tránh vi phạm bản quyền phần mềm

Bước 1: Cài đặt Apache

Apache là một Webserver rất phổ biến hiện nay, bạn cứ tưởng tượng là các gói Shared Host có sử dụng cPanel X đa phần đều dùng Apache hết. Do nó phổ biến và dễ cấu hình hơn nên mình sẽ hướng dẫn cho bạn thực hành, chứ để tối ưu nhất thì sẽ sử dụng NGINX Webserver nhưng mình không nói tới ở các bài đầu tiên.

Để cài đặt Apache, mở terminal lên và gõ các lệnh sau:

sudo apt-get update
sudo apt-get install apache2

Bước 2: Cài đặt MySQL

MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng. Vì MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh. Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet. MySQL miễn phí hoàn toàn cho nên bạn có thể tải về MySQL từ trang chủ. Nó có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệ điều hành dòng Windows, Linux, Mac OS X, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS,...

Để cài đặt MySQL, mở terminal lên và gõ các lệnh sau:

sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql

Bước 3: Cài đặt PHP

PHP (viết tắt của cụm từ Personal Home Page) là ngôn ngữ lập trình kịch bản (scripting language) mã nguồn mở được dùng phổ biến để ra tạo các ứng dụng web chạy trên máy chủ.

Để cài đặt PHP, mở terminal lên và gõ các lệnh sau:

sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt

PHP Modules

Nếu bạn muốn cài thêm các module khác cho PHP thì có thể tìm tên các module trong gói cài đặt bằng lệnh sau:

apt-cache search php5-

Terminal sẽ hiển thị danh sách các module sau:

php5-cgi - server-side, HTML-embedded scripting language (CGI binary)
php5-cli - command-line interpreter for the php5 scripting language
php5-common - Common files for packages built from the php5 source
php5-curl - CURL module for php5
php5-dbg - Debug symbols for PHP5
php5-dev - Files for PHP5 module development
php5-gd - GD module for php5
php5-gmp - GMP module for php5
php5-ldap - LDAP module for php5
php5-mysql - MySQL module for php5
php5-odbc - ODBC module for php5
php5-pgsql - PostgreSQL module for php5
php5-pspell - pspell module for php5
php5-recode - recode module for php5
php5-snmp - SNMP module for php5
php5-sqlite - SQLite module for php5
php5-tidy - tidy module for php5
php5-xmlrpc - XML-RPC module for php5
php5-xsl - XSL module for php5
php5-adodb - Extension optimising the ADOdb database abstraction library
php5-auth-pam - A PHP5 extension for PAM authentication
[...]

Để cài đặt module bạn gõ lệnh sau:

sudo apt-get install tên module

ví dụ bạn cài php5-cgi thì gõ lệnh

sudo apt-get install php5-cgi

Bạn cũng có thể cài nhiều module cùng 1 lúc bằng lệnh sau:

sudo apt-get install module1 module2 module3

mỗi tên module thì cách 1 khoảng trắng (space)

Bước 4: Kiểm tra xem đã cài đặt thành công chưa

Bằng cách tạo 1 file mới:

sudo nano /var/www/info.php

Thêm đoạn code dưới đây vào

<?php
 phpinfo();
?>

Save lại và khởi động lại apache:

sudo service apache2 restart

Mở trình duyệt lên và gõ http://localhost/info.php để xem kết quả nhé

Cài đặt Apache, MySQL, PHP (LAMP) trên hệ điều hành Ubuntu

Chúc bạn thành công!


Các hàm chuỗi trong php, các thao tác - các hàm xử lý chuỗi cơ bản như tìm kiếm, cắt, thay thế, tính chiều dài, làm thành chữ in hoa - in thường (xử lý chuỗi)...

1. Quy tắc trong chuỗi

Nếu chuỗi được đặt trong dấu nháy kép "" thì các ký tự nháy kép " bên trong chuỗi phải thêm dấu gạch chéo đằng trước nó.
Ví dụ:
1
echo "Nam nói\"Cậu ấy đang ăn tối\" ";
Nếu chuối được đặt trong dấu nháy kép thì trong chuỗi ta có thể truyền biến vào mà không cần dùng phép nối chuỗi.
Ví dụ:
1
2
$str = "đang ăn tối";
echo "Nam nói\"Cậu ấy $str\" ";
Nếu chuỗi được đặt trong dấu nháy đơn '' thì các ký tự nháy đơn ' bên trong chuỗi phải thêm dấu gạch chéo đằng trước nó.
Ví dụ:
1
echo 'Các hàm xử lý chuỗi trong php';

2. Các hàm xử lý chuỗi hay sử dụng

Sau đây là các hàm chúng ta hay sử dụng để xử lý chuỗi trong PHP.
addcslashes ($str, $char_list)
Hàm này sẽ thêm dấu gạch chéo (\) đằng trước những ký tự trong chuỗi $str mà ta liệt kê ở $char_list.
1
2
3
4
5
6
7
8
// a..z là gồm các từ từ a => z
echo (addcslashes('google.com GOOGLE.COM', 'a..z'));
// kết quả: \g\o\o\g\l\e.\c\o\m GOOGLE.COM
  
echo '<br />';
  
// a..zA..Z là gồm các từ từ a => z và A => Z
echo (addcslashes('google.com GOOGLE.COM', 'a..zA..Z'));
addslashes ( $str )
Hàm này sẽ thêm dấu gách chéo trước những ký tự (‘, “, \) trong chuỗi $str.
1
2
echo addslashes ("Helloworld");
// Kết quả là Helloworld
stripslashes ($str)
Hàm này ngược với hàm addslashes, nó xóa các ký tự \ trong chuỗi $str.
1
2
echo stripslashes("Mot so ham 'xu ly chuoi' trong PHP");
// Kết quả Mot so ham 'xu ly chuoi' trong PHP
crc32 ( $str )
Hàm này sẽ chuyển chuỗi $str thành một dãy số nguyên (có thể âm hoặc dương tùy theo hệ điều hành).
1
2
echo crc32('google.com');
// kết quả: -514913901
explode ( $delimiter , $string)
Hàm này sẽ chuyển một chuỗi $string thành một mảng các phần tử với ký tự tách mảng là $delimiter.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// Chuỗi cần chuyển<br />
$str = 'Các hàm xử lý chuỗi trong php';
  
// Mỗi khoảng trắng sẽ là một phần tử trong mảng<br />
var_dump(explode(' ', $str));
  
/*Kết quả
array
    0 => 'Các',
    1 => 'hàm',
    2 => 'xử' ,
    3 => 'lý',
    4 => 'chuỗi',
    5 => 'trong' ,
    6 => 'php' */
implode($delimiter, $piecesarray);
Hàm này ngược với hàm explode, nó chuyển một mảng $piecesarray thành chuỗi và mỗi phần tử cách nhau bởi chuỗi $delimiter
1
2
3
4
5
6
7
8
echo implode(' ', array(
    'các',
    'hàm',
    'xử',
    'lý',
    'chuỗi'
));
// kết quả là các hàm xử lý chuỗi
ord ( $string )
Hàm này trả về mã ASCII của ký tự đầu tiên trong chuỗi $string.
1
2
echo ord ('Ab');
// kết quả: 65
strlen($string)
Hàm này đếm số ký tự của chuỗi $string.
1
2
echo strlen('google.com');
// kết quả: 10
str_word_count($str)
Hàm này trả về số từ trong chuỗi $str.
1
2
echo str_word_count('xin chào các bạn');
// kết quả là 7
str_repeat(  $str,  int $n  )
Hàm này lặp chuỗi $str $n lần.
1
2
echo str_repeat( 'Hello', 5 );
// Kết quả là HelloHelloHelloHelloHello
str_replace( $chuoi_tim, $chuoi_thay_the, $chuoi_nguon )
Hàm này tìm kiếm và thay thế chuỗi.
1
2
3
$str = 'Xin Chào Các Bạn';
$str = str_replace( 'Xin Chào', 'Hello', $str );
echo $str; // kết quả là Hello Các Bạn
Để thay thế nhiều chuỗi ta có thể dùng mảng để truyền vào
1
2
3
$str = 'PHP Xin Chào Các Bạn';
$str = str_replace( array('PHP', 'Xin Chào'), array('Google', 'Hello'), $str );
echo $str; // kết quả là Google Hello Các Bạn
md5( $str)
Hàm này mã hóa chuỗi thành một dãy 32 ký tự (mã hóa md5).
1
2
echo md5('123456');
// Kết quả: e10adc3949ba59abbe56e057f20f883e
sha1($string)
Hàm này mã hóa chuỗi thành một dãy 40 ký tự (mã hóa sha1)
1
2
echo sha1('123456');
// kết quả 7c4a8d09ca3762af61e59520943dc26494f8941b
htmlentities($str)
Hàm này chuyển các thể html trong chuỗi $str sang  dạng thực thể của chúng (html sẽ ko còn tác dụng nên bạn có thể echo ra bên ngoài).
1
2
echo htmlentities('<b>google.com</b>');
// Kết quả <b>google.com</b>
html_entity_decode($string)
Ngược lại với htmlentities, hàm này chuyển ngược các ký tự dạng thực thể HTML sang dạng ký tự của chúng.
1
2
3
4
$str = htmlentities('<b>google.com</b>');
  
echo 'Entity: ' . $str . '<br/>';
echo 'Decode: ' . html_entity_decode($str);
htmlspecialchars( $string)
Tương tự như htmlentities.
htmlspecialchars_decode($string)
Tương tự như html_entity_decode.
strip_tags( $string, $allow_tags )
Hàm này bỏ các thẻ html trong chuỗi $string được khai báo ở $allow_tags.
1
echo strip_tags('<b>google.com</b>', 'b');
substr( $string,  $start, $length )
Hàm này lấy một chuỗi con nằm trong chuỗi $str bắt đầu từ ký tự thứ $start và chiều dài $length.
1
2
echo substr( 'google.com',  0, 6);
// Kết quả google
strstr( $string, $ky_tu_cho_truoc )
Tách một chuỗi bắt đầu từ  $ky_tu_cho_truoc cho đến hết chuỗi.
1
2
echo strstr('google.com Xin Chào', 'Xin');
// Kết quả: Xin Chào
strpos($str, $chuoi_tim )
Tìm vị trí của chuỗi $chuoi_tim trong chuỗi $str, kết quả trả về false nếu không tìm thấy.
1
2
echo strpos('google.com chào các bạn', 'chào');
// kết quả 11
strtolower($str);
Chuyển tất cả các ký tự chuỗi $str sang chữ thường
strtoupper($string );
Chuyển tất cả các ký tự chuỗi $str sang chữ hoa
ucfirst( $string )
Chuyển ký tự đầu tiên chuỗi $string sang chữ hoa
ucfirst( $string )
Chuyển ký tự đầu tiên trong chuỗi $string sang chữ thường
ucwords( $string )
Chuyên từ đầu tiên trong chuỗi $string sang chữ hoa
trim($string, $ky_tu);
Xóa ký tự $ky_tu nằm ở đầu và cuối chuỗi $str, nếu ta không nhập $ky_tu thì mặc định nó hiểu là xóa khoảng trắng.
1
2
3
4
5
echo trim(' google.com ');
// kết quả: 'google.com'
  
echo trim('google.com');
// kết quả: 'google.com'
ltrim($string, $ky_tu);
Tương tự như trim nhưng chỉ xóa bên trái
rtrim($string, $ky_tu)
Tương tự như trim nhưng chỉ xóa bên phải
nl2br($string)
Chuyển các ký tự xuống dòng “\n” thành thẻ
json_decode($json, $is_array)
Dùng để chuyển chuỗi dạng JSON sang các đối tượng mảng hoặc object. Nếu $is_array có giá trị false thì hàm sẽ chuyển một chuỗi $json thành một Class (object),  ngược lại nếu $is_array có giá trị true thì sẽ chuyển chuỗi $json thành một mảng.
json_encode($array_or_object)
Chuyển một mảng hoặc mội đối tượng (classs) sang chuỗi dạng JSON
KẾT THÚC: 
Xử lý chuỗi là công việc quan trọng và thường xuyên trong lập trình php các bạn cần nắm vững: Thế nào là một chuỗi Truy xuất cơ bản như gán, sửa giá trị, truy cập,,,, Các thao tác xử lý chuỗi thông qua các hàm như tìm kiếm, cắt chuỗi,...