Cách nâng cấp lên PHP 7 trên Ubuntu 14.04
PHP 7, được phát hành vào ngày 3 tháng 12 năm 2015, hứa hẹn sẽ cải thiện tốc độ đáng kể so với các version trước của ngôn ngữ, cùng với các tính năng mới như gợi ý kiểu vô hướng. Hướng dẫn này giải thích cách nhanh chóng nâng cấp web server Apache hoặc Nginx chạy PHP 5.x (bất kỳ bản phát hành nào) lên PHP 7.Cảnh báo: Như với hầu hết các bản phát hành ngôn ngữ version chính, tốt nhất nên đợi một chút trước khi chuyển sang PHP 7 trong version production . Trong khi đó, đây là thời điểm thích hợp để kiểm tra các ứng dụng của bạn về khả năng tương thích với bản phát hành mới, thực hiện các điểm chuẩn và tự làm quen với các tính năng ngôn ngữ mới.
Nếu bạn đang chạy bất kỳ dịch vụ hoặc ứng dụng nào có user đang hoạt động, cách an toàn nhất là trước tiên hãy kiểm tra quá trình này trong môi trường dàn.
Yêu cầu
Hướng dẫn này giả định bạn đang chạy PHP 5.x trên máy Ubuntu 14.04, sử dụng mod_php
kết hợp với Apache hoặc PHP-FPM kết hợp với Nginx. Nó cũng giả định bạn có một user không phải root được cấu hình với các quyền sudo
cho các việc quản trị.
Thêm PPA cho các gói PHP 7.0
Repository cá nhân , hoặc PPA, là một repository Apt được lưu trữ trên Launchpad . PPA cho phép các nhà phát triển bên thứ ba xây dựng và phân phối các gói cho Ubuntu bên ngoài các kênh chính thức. Chúng thường là các nguồn hữu ích của phần mềm beta, các bản dựng đã sửa đổi và các bản backport cho các bản phát hành cũ hơn của hệ điều hành.
Ondřej Surý duy trì các gói PHP cho Debian và cung cấp PPA cho PHP 7.0 trên Ubuntu . Trước khi làm bất cứ điều gì khác, hãy đăng nhập vào hệ thống của bạn và thêm PPA của Ondřej vào các nguồn Apt của hệ thống:
- sudo add-apt-repository ppa:ondrej/php
Bạn sẽ thấy mô tả về PPA, sau đó là dấu nhắc tiếp tục. Nhấn Enter để tiếp tục.
Lưu ý: Nếu ngôn ngữ hệ thống của bạn được đặt thành bất kỳ thứ gì khác ngoài UTF-8, việc thêm PPA có thể không thành công do các ký tự xử lý lỗi trong tên tác giả. Để giải quyết vấn đề này, bạn có thể cài đặt language-pack-en-base
đảm bảo rằng các ngôn ngữ được tạo và overrides cài đặt ngôn ngữ trên toàn hệ thống trong khi thêm PPA:
- sudo apt-get install -y language-pack-en-base
- sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php
Sau khi PPA được cài đặt, hãy cập nhật cache ẩn gói local để bao gồm nội dung của nó:
- sudo apt-get update
Bây giờ ta có quyền truy cập vào các gói cho PHP 7.0, ta có thể thay thế cài đặt PHP hiện có.
Nâng cấp mod_php
với Apache
Phần này mô tả quá trình nâng cấp cho hệ thống sử dụng Apache làm web server và mod_php
để thực thi mã PHP. Thay vào đó, nếu bạn đang chạy Nginx và PHP-FPM, hãy chuyển sang phần tiếp theo.
Đầu tiên, hãy cài đặt các gói mới. Thao tác này sẽ nâng cấp tất cả các gói PHP quan trọng, ngoại trừ php5-mysql
, gói này sẽ bị xóa.
- sudo apt-get install php7.0
Lưu ý: Nếu bạn đã thực hiện các sửa đổi đáng kể đối với các file cấu hình nào trong /etc/php5/
, các file đó vẫn ở nguyên vị trí và có thể được tham chiếu. Các file cấu hình cho PHP 7.0 hiện có trong /etc/php/7.0
.
Nếu bạn đang sử dụng MySQL, hãy đảm bảo thêm lại các liên kết PHP MySQL đã cập nhật:
- sudo apt-get install php7.0-mysql
Nâng cấp PHP-FPM với Nginx
Phần này mô tả quá trình nâng cấp cho hệ thống sử dụng Nginx làm web server và PHP-FPM để thực thi mã PHP.
Đầu tiên, hãy cài đặt gói PHP-FPM mới và các phụ thuộc của nó:
- sudo apt-get install php7.0-fpm
Bạn sẽ được yêu cầu tiếp tục. Nhấn Enter để hoàn tất cài đặt.
Nếu bạn đang sử dụng MySQL, hãy đảm bảo cài đặt lại các ràng buộc PHP MySQL:
- sudo apt-get install php7.0-mysql
Lưu ý: Nếu bạn đã thực hiện các sửa đổi đáng kể đối với các file cấu hình nào trong /etc/php5/
, các file đó vẫn ở nguyên vị trí và có thể được tham chiếu. Các file cấu hình cho PHP 7.0 hiện có trong /etc/php/7.0
.
Cập nhật (các) trang web Nginx để sử dụng đường dẫn socket mới
Nginx giao tiếp với PHP-FPM bằng socket domain Unix . Sockets ánh xạ đến một đường dẫn trên hệ thống file và cài đặt PHP 7 của ta sử dụng một đường dẫn mới theo mặc định:
PHP 5 | PHP 7 |
---|---|
/var/run/php5-fpm.sock | /var/run/php/php7.0-fpm.sock |
Mở file cấu hình trang web default
bằng nano
(hoặc trình soạn thảo của bạn chọn):
- sudo nano /etc/nginx/sites-enabled/default
Cấu hình của bạn có thể hơi khác. Tìm một khối bắt đầu bằng location ~ \.php$ {
và một dòng giống như fastcgi_pass unix:/var/run/php5-fpm.sock;
. Thay đổi điều này để sử dụng unix:/var/run/php/php7.0-fpm.sock
.
server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /var/www/html; index index.php index.html index.htm; server_name server_domain_name_or_IP; location / { try_files $uri $uri/ =404; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
Thoát và lưu file . Trong nano
, bạn có thể thực hiện điều này bằng cách nhấn Ctrl-X để thoát, y để xác nhận và Enter để xác nhận tên file cần overrides .
Bạn nên lặp lại quy trình này cho bất kỳ trang web ảo nào khác được xác định trong /etc/nginx/sites-enabled
cần hỗ trợ PHP.
Bây giờ ta có thể khởi động lại nginx
:
- sudo service nginx restart
Thử nghiệm PHP
Với một web server được cấu hình và các gói mới được cài đặt, ta sẽ có thể xác minh PHP đang hoạt động. Bắt đầu bằng cách kiểm tra version PHP đã cài đặt tại dòng lệnh:
- php -v
OutputPHP 7.0.0-5+deb.sury.org~trusty+1 (cli) ( NTS ) Copyright (c) 1997-2015 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies
Bạn cũng có thể tạo một file thử nghiệm trong root tài liệu của web server . Tùy thuộc vào server và cấu hình của bạn, đây có thể là một trong số:
-
/var/www/html
-
/var/www/
-
/usr/share/nginx/html
Sử dụng nano
, mở một file mới có tên là info.php
trong folder root của tài liệu. Theo mặc định, trên Apache, nó sẽ là:
- sudo nano /var/www/html/info.php
Trên Nginx, bạn có thể sử dụng:
- sudo nano /usr/share/nginx/html/info.php
Dán mã sau:
<?php phpinfo(); ?>
Thoát khỏi editor , lưu info.php
. Bây giờ, hãy tải địa chỉ sau vào trình duyệt của bạn:
http://server_domain_name_or_IP/info.php
Bạn sẽ thấy version PHP và thông tin cấu hình cho PHP 7. Khi bạn đã kiểm tra kỹ điều này, cách an toàn nhất là xóa info.php
:
- sudo rm /var/www/html/info.php
Kết luận
Đến đây bạn đã có một bản cài đặt PHP 7 đang hoạt động. Từ đây, bạn có thể cần xem bài đăng trên blog Chuẩn bị sẵn sàng cho PHP 7 của Erika Heidi và xem qua hướng dẫn di chuyển chính thức .
Các tin liên quan
Cách triển khai nhiều ứng dụng PHP bằng Ansible trên Ubuntu 14.042015-06-28
Cách triển khai ứng dụng PHP nâng cao bằng Ansible trên Ubuntu 14.04
2015-06-02
Cách triển khai một ứng dụng PHP cơ bản bằng Ansible trên Ubuntu 14.04
2015-04-14
Cách chia sẻ các phiên PHP trên nhiều server Memcached trên Ubuntu 14.04
2014-07-22
Cách sử dụng Framework PHP miễn phí béo
2014-03-06
Cách tự động hóa quy trình triển khai ứng dụng PHP bằng Capistrano trên Ubuntu 13
2014-02-26
Cách triển khai ứng dụng Kohana PHP trên VPS Debian 7 / Ubuntu 13 với Nginx và PHP-FPM
2013-12-30
Cách cài đặt và thiết lập Kohana, Khung phát triển ứng dụng web PHP
2013-12-30
Cách tùy chỉnh MediaWiki bằng tệp LocalSettings.php
2013-09-16
Bắt đầu với Yii PHP Framework - Phần 2
2013-08-12