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ả.
Bình luận