PHP7 đang được nhiều người mong ngóng từng ngày cho tới khi phiên bản chính thức được tung ra. Cho đến thời điểm này PHP7 vẫn chưa chính thức ra mắt nhưng với các developer đang nóng lòng muốn thử nghiệm sức mạnh của nó thì chúng ta vẫn có thể trải nghiệm thử PHP7 ngay lúc này. Trong bài viết này, tôi tổng hợp một số nguồn tin để tạo thành các bước hướng dẫn các bạn cài đặt một LEPP stack (Linux, Nginx, Postgresql, PHP) với PHP7 trên môi trường hệ điều hành Ubuntu (và các phiên bản bắt nguồn từ Ubuntu như Lubuntu, Xubuntu, ...).

Còn nhiều tip tricks - kinh nghiệm được hướng dẫn chi tiết trong video khóa học "PHP 7 cơ bản qua ví dụ"

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

Tải bộ cài postgresql tại đây, chạy file cài đặt có giao diện, cài đặt Postgresql vào thư mục /usr/local/pgsql

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

Chuẩn bị: chạy lệnh sau và cài đặt các gói cần thiết

$ sudo apt-get update && apt-get install -y \
build-essential \
libcurl4-openssl-dev \
libmcrypt-dev \
libxml2-dev \
libjpeg-dev \
libfreetype6-dev \
libmysqlclient-dev \
libt1-dev \
libgmp-dev \
libpspell-dev \
libicu-dev \
librecode-dev

Tải source PHP7 bản mới nhất (file có định dạng *.tar.gz) tại địa chỉ: https://downloads.php.net/~ab/ (ở thời điểm viết bài là bản PHP7 RC5)

Giải nén source php 7 ra, trên terminal cd vào thư mục source php 7 rồi chạy các lệnh sau

./configure --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --with-config-file-scan-dir=/usr/local/php7/etc/conf.d --enable-mbstring --enable-fpm --with-pdo-pgsql
make
sudo make install

Tại thư mục source php, chạy lệnh sau

sudo cp php.ini-development /usr/local/lib/php.ini

 Bước 3: Cấu hình PHP-FPM

Tạo file php-fpm.conf với đường dẫn /usr/local/php7/etc/php-fpm.conf có nội dung như sau:

[global]
pid = /run/php7-fpm.pid
error_log = /var/log/php7-fpm.log

[www]
user = www-data
group = www-data

listen = 127.0.0.1:9000

pm = dynamic
pm.max_children = 10
pm.start_servers = 4
pm.min_spare_servers = 2
pm.max_spare_servers = 6

Nếu bạn có cài đặt các phiên bản PHP trước 7, hãy đảm bảo thông số listen có cổng không trùng với php-fpm của phiên bản trước.

Tạo System V init script với đường dẫn /etc/init.d/php7-fpm

$ wget -O /etc/init.d/php7-fpm "https://gist.github.com/bjornjohansen/bd1f0a39fd41c7dfeb3a/raw/f0312ec54d1be4a8f6f3e708e46ee34d44ef4657/etc%20inid.d%20php7-fpm"
$ sudo chmod a+x /etc/init.d/php7-fpm

Sau đó chúng ta cần có init script tại /etc/init/php7-fpm.conf

$ wget -O /etc/init/php7-fpm.conf "https://gist.github.com/bjornjohansen/9555c056a7e8d1b1947d/raw/15920fa2f447358fdd1c79eecd75a53aaaec76f9/etc%20init%20php7-fpm"

Tạo file /usr/local/lib/php7-fpm-checkconf với nội dung:

#!/bin/sh
set -e
errors=$(/usr/local/php7/sbin/php-fpm --fpm-config /usr/local/php7/etc/php-fpm.conf -t 2>&1 | grep "\[ERROR\]" || true);
if [ -n "$errors" ]; then
    echo "Please fix your configuration file…"
    echo $errors
    exit 1
fi
exit 0

Cấp quyền chạy cho file đó:

$ sudo chmod a+x /usr/local/lib/php7-fpm-checkconf

Để đảm bảo php-fpm luôn khởi chạy khi hệ điều hành khởi động, chạy lệnh sau:

$ update-rc.d php7-fpm defaults

Start service của php-fpm:

$ sudo service php7-fpm start

Bước 4: Cài đặt và cấu hình Nginx

Cài đặt Nginx: chạy lệnh sau đây

sudo apt-get install nginx

Mặc định trên Ubuntu thì thư mục root của Nginx là /usr/share/nginx/html. Để thuận tiện hơn khi làm việc, ta sẽ sử dụng thư mục /var/www

Đầu tiên ta chạy lệnh sau để tạo thư mục

sudo mkdir -p /var/www/example

(Option -p cho phép tạo ra các thư mục cha trong trường hợp nó chưa tồn tại)

Cấp quyền cho các thư mục

sudo chown -R $USER:$USER /var/www/example
sudo chmod -R 755 /var/www

.Tạo một file index.php trong thư mục /var/www/example với nội dung đơn giản như sau:

<?php
    phpinfo();
?>

Tạo file cấu hình cho server để chạy ví dụ của chúng ta: tạo file /etc/nginx/sites-available/example.conf với nội dung như sau

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /var/www/example;
    index index.php index.html index.htm;

    server_name example.com www.example.com;

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

    location ~ \.php {

        # try_files    $uri =404;
        fastcgi_index  /index.php;

        fastcgi_pass   127.0.0.1:9000;

        include fastcgi_params;

        fastcgi_split_path_info       ^(.+\.php)(/.+)$;

        fastcgi_param PATH_INFO       $fastcgi_path_info;

        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;

        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

    }
}

Kích hoạt file cấu hình này với câu lệnh sau:

sudo ln -s /etc/nginx/sites-available/example.conf /etc/nginx/sites-enabled/example.conf

Bạn cũng có thể vô hiệu file cấu hình mặc định nếu muốn:

sudo rm /etc/nginx/sites-enabled/default

Khởi động lại Nginx

sudo service nginx restart

Bây giờ bạn đã có thể truy cập vào trang web ví dụ.

Trước hết bạn cần biết IP của server bằng câu lệnh sau:

ip addr show
# hoặc sử dụng lệnh dưới đây
ifconfig

Ví dụ IP server là 192.168.1.142.  Trên máy tính Mac hay Linux (không phải server), bạn có thể sửa file host để truy cập vào trang web ví dụ.

sudo nano /etc/hosts 

Thêm nội dung sau vào cuối file và lưu lại

192.168.1.142    www.example.com 
192.168.1.142    example.com 

Cuối cùng bạn có thể mở trình duyệt và truy cập địa chỉ  http://192.168.1.142 hoặc example.com để thử xem thành quả.