Yum php tải xuống miễn phí

Nếu bạn đang đi đúng hướng, vấn đề là phiên bản gói PHP so với phiên bản gói PHP. phiên bản php-mcrypt---vì vậy bạn sẽ cần nâng cấp php-mcrypt lên. 2. 6

Có hướng dẫn chi tiết hơn về. 1. 6->5. 2. 6 quá trình tại

//www. //wiki. hàng trăm. org/HowTos/PHP_5. 1_Đến_5. 22

CentOS 5. 6 – Yum Cập nhật Php lên. 2. 10

Nếu một PHP thậm chí mới hơn không phải là vấn đề [PHP 5]. 3], nó hiện có sẵn cho CentOS. 6

Mô-đun json là một phần của gói chung php53

Được rồi, vì vậy nó cần được kích hoạt. Vấn đề là tôi không nhớ tệp đó nằm ở đâu trong cài đặt mặc định vì tôi không sử dụng stock PHP. Tôi nghĩ nó nên ở trong

$ rpm -qa | egrep 'php-mysql|mysql|maria'
php-mysql-5.4.16-46.el7.x86_64
mariadb-5.5.60-1.el7_5.x86_64
mariadb-libs-5.5.60-1.el7_5.x86_64
mariadb-server-5.5.60-1.el7_5.x86_64
8. Vì vậy, hãy bắt đầu ở đó. Hãy chạy

$ rpm -qa | egrep 'php-mysql|mysql|maria'
php-mysql-5.4.16-46.el7.x86_64
mariadb-5.5.60-1.el7_5.x86_64
mariadb-libs-5.5.60-1.el7_5.x86_64
mariadb-server-5.5.60-1.el7_5.x86_64
9

và đăng những gì nó xuất ra. Nếu nó không xuất ra gì, thì

$ php -m | grep mysql
mysql
mysqli
pdo_mysql
0

và đăng đầu ra đó

Richard

Mặc dù thực tế là PHP 5 đã hết hạn sử dụng, nhưng vẫn có những ứng dụng cũ được xây dựng trên nó cần chạy trong môi trường sản xuất hoặc thử nghiệm. Nếu bạn đang cài đặt các gói PHP thông qua kho lưu trữ hệ điều hành, vẫn có khả năng bạn sẽ kết thúc với các gói PHP 5, ví dụ:. g. Hệ điều hành CentOS 7. Phải nói rằng, luôn có cách để làm cho các ứng dụng cũ của bạn chạy với các phiên bản cơ sở dữ liệu mới hơn và do đó tận dụng được các tính năng mới

Trong bài đăng trên blog này, chúng tôi sẽ hướng dẫn bạn cách chạy các ứng dụng PHP 5 với phiên bản MySQL 8 mới nhất. 0 trên hệ điều hành CentOS 7. Blog này dựa trên trải nghiệm thực tế với một dự án nội bộ yêu cầu ứng dụng PHP 5 chạy cùng với MySQL 8 mới của chúng tôi. 0 trong môi trường mới. Lưu ý rằng sẽ hoạt động tốt nhất khi chạy phiên bản PHP 7 mới nhất cùng với MySQL. 0 để tận dụng tất cả các cải tiến quan trọng được giới thiệu trong các phiên bản mới hơn

PHP và MySQL trên CentOS

Trước hết, hãy xem những tệp nào đang được cung cấp bởi gói php-mysql

$ cat /etc/redhat-release
CentOS Linux release 7.6.1810 [Core]
$ repoquery -q -l --plugins php-mysql
/etc/php.d/mysql.ini
/etc/php.d/mysqli.ini
/etc/php.d/pdo_mysql.ini
/usr/lib64/php/modules/mysql.so
/usr/lib64/php/modules/mysqli.so
/usr/lib64/php/modules/pdo_mysql.so

Theo mặc định, nếu chúng ta cài đặt các thành phần ngăn xếp LAMP tiêu chuẩn đi kèm với CentOS 7 chẳng hạn

$ yum install -y httpd php php-mysql php-gd php-curl mod_ssl

Bạn sẽ cài đặt các gói liên quan sau

$ rpm -qa | egrep 'php-mysql|mysql|maria'
php-mysql-5.4.16-46.el7.x86_64
mariadb-5.5.60-1.el7_5.x86_64
mariadb-libs-5.5.60-1.el7_5.x86_64
mariadb-server-5.5.60-1.el7_5.x86_64

Các mô-đun liên quan đến MySQL sau đây sẽ được tải vào PHP

$ php -m | grep mysql
mysql
mysqli
pdo_mysql

Khi xem phiên bản API được báo cáo bởi phpinfo[] cho các máy khách liên quan đến MySQL, tất cả chúng đều khớp với phiên bản MariaDB mà chúng tôi đã cài đặt

$ php -i | egrep -i 'client.*version'
Client API version => 5.5.60-MariaDB
Client API library version => 5.5.60-MariaDB
Client API header version => 5.5.60-MariaDB
Client API version => 5.5.60-MariaDB

Tại thời điểm này, chúng ta có thể kết luận rằng mô-đun php-mysql đã cài đặt được xây dựng và tương thích với MariaDB. 5. 60

Cài đặt MySQL. 0

Tuy nhiên, trong dự án này, chúng tôi bắt buộc phải chạy trên MySQL 8. 0 nên chúng tôi đã chọn Máy chủ Percona. 0 để thay thế cài đặt MariaDB hiện có mặc định mà chúng tôi có trên máy chủ đó. Để làm điều đó, bạn cần cài đặt Kho lưu trữ Percona và kích hoạt Máy chủ Percona. 0 kho lưu trữ

$ yum install //repo.percona.com/yum/percona-release-latest.noarch.rpm
$ percona-release setup ps80
$ yum install percona-server-server

Tuy nhiên, chúng tôi đã gặp lỗi sau khi chạy lệnh cuối cùng

--> Finished Dependency Resolution
Error: Package: 1:mariadb-5.5.60-1.el7_5.x86_64 [@base]
           Requires: mariadb-libs[x86-64] = 1:5.5.60-1.el7_5
           Removing: 1:mariadb-libs-5.5.60-1.el7_5.x86_64 [@anaconda]
               mariadb-libs[x86-64] = 1:5.5.60-1.el7_5
           Obsoleted By: percona-server-shared-compat-8.0.15-6.1.el7.x86_64 [ps-80-release-x86_64]
               Not found
Error: Package: 1:mariadb-server-5.5.60-1.el7_5.x86_64 [@base]
           Requires: mariadb-libs[x86-64] = 1:5.5.60-1.el7_5
           Removing: 1:mariadb-libs-5.5.60-1.el7_5.x86_64 [@anaconda]
               mariadb-libs[x86-64] = 1:5.5.60-1.el7_5
           Obsoleted By: percona-server-shared-compat-8.0.15-6.1.el7.x86_64 [ps-80-release-x86_64]
               Not found
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

Ở trên chỉ đơn giản có nghĩa là gói tương thích được chia sẻ của Máy chủ Percona sẽ lỗi thời mariadb-libs-5. 5. 60, được yêu cầu bởi các gói máy chủ mariadb đã được cài đặt. Vì đây là một máy chủ hoàn toàn mới nên việc xóa các gói MariaDB hiện có không phải là vấn đề lớn. Trước tiên hãy gỡ bỏ chúng và sau đó thử cài đặt Percona Server 8. 0 một lần nữa

$ yum remove mariadb mariadb-libs
...
Resolving Dependencies
--> Running transaction check
---> Package mariadb-libs.x86_64 1:5.5.60-1.el7_5 will be erased
--> Processing Dependency: libmysqlclient.so.18[][64bit] for package: perl-DBD-MySQL-4.023-6.el7.x86_64
--> Processing Dependency: libmysqlclient.so.18[][64bit] for package: 2:postfix-2.10.1-7.el7.x86_64
--> Processing Dependency: libmysqlclient.so.18[][64bit] for package: php-mysql-5.4.16-46.el7.x86_64
--> Processing Dependency: libmysqlclient.so.18[libmysqlclient_18][64bit] for package: perl-DBD-MySQL-4.023-6.el7.x86_64
--> Processing Dependency: libmysqlclient.so.18[libmysqlclient_18][64bit] for package: 2:postfix-2.10.1-7.el7.x86_64
--> Processing Dependency: libmysqlclient.so.18[libmysqlclient_18][64bit] for package: php-mysql-5.4.16-46.el7.x86_64
--> Processing Dependency: mariadb-libs[x86-64] = 1:5.5.60-1.el7_5 for package: 1:mariadb-5.5.60-1.el7_5.x86_64
---> Package mariadb-server.x86_64 1:5.5.60-1.el7_5 will be erased
--> Running transaction check
---> Package mariadb.x86_64 1:5.5.60-1.el7_5 will be erased
---> Package perl-DBD-MySQL.x86_64 0:4.023-6.el7 will be erased
---> Package php-mysql.x86_64 0:5.4.16-46.el7 will be erased
---> Package postfix.x86_64 2:2.10.1-7.el7 will be erased

Việc xóa mariadb-lib cũng sẽ xóa các gói khác phụ thuộc vào điều này khỏi hệ thống. Mối quan tâm chính của chúng tôi là các gói php-mysql sẽ bị xóa do phụ thuộc vào libmysqlclient. vì thế. 18 được cung cấp bởi mariadb-libs. Chúng tôi sẽ khắc phục điều đó sau

Sau đó, bạn sẽ có thể cài đặt Percona Server 8. 0 không có lỗi

________số 8

Tại thời điểm này, đây là các gói liên quan đến MySQL mà chúng tôi có trong máy chủ

$ rpm -qa | egrep 'php-mysql|mysql|maria|percona'
percona-server-client-8.0.15-6.1.el7.x86_64
percona-server-shared-8.0.15-6.1.el7.x86_64
percona-server-server-8.0.15-6.1.el7.x86_64
percona-release-1.0-11.noarch
percona-server-shared-compat-8.0.15-6.1.el7.x86_64

Lưu ý rằng chúng tôi không có các gói php-mysql cung cấp các mô-đun để kết nối ứng dụng PHP của chúng tôi với Máy chủ Percona 8 mới được cài đặt của chúng tôi. 0 máy chủ. Chúng tôi có thể xác nhận điều này bằng cách kiểm tra mô-đun PHP đã tải. Bạn sẽ nhận được đầu ra trống với lệnh sau

$ yum install -y httpd php php-mysql php-gd php-curl mod_ssl
0

Hãy cài đặt lại

$ yum install -y httpd php php-mysql php-gd php-curl mod_ssl
1

Bây giờ chúng tôi có chúng và chúng được tải vào PHP

$ php -m | grep mysql
mysql
mysqli
pdo_mysql

Và chúng tôi cũng có thể xác nhận điều đó bằng cách xem thông tin PHP thông qua dòng lệnh

$ yum install -y httpd php php-mysql php-gd php-curl mod_ssl
3

Lưu ý sự khác biệt giữa phiên bản thư viện API máy khách và phiên bản tiêu đề API. Chúng ta sẽ thấy hậu quả của điều đó sau trong quá trình thử nghiệm

Hãy bắt đầu MySQL của chúng tôi. 0 máy chủ để kiểm tra ứng dụng PHP5 của chúng tôi. Vì chúng tôi đã cho MariaDB sử dụng datadir trong /var/lib/mysql, nên chúng tôi phải xóa nó trước, khởi tạo lại datadir, chỉ định quyền sở hữu phù hợp và khởi động nó

$ yum install -y httpd php php-mysql php-gd php-curl mod_ssl
4

Lấy mật khẩu gốc MySQL tạm thời được tạo bởi Percona Server từ tệp nhật ký lỗi MySQL

$ yum install -y httpd php php-mysql php-gd php-curl mod_ssl
5

Sử dụng nó để đăng nhập trong lần đăng nhập đầu tiên của người dùng [email được bảo vệ] Chúng tôi cần thay đổi mật khẩu tạm thời thành mật khẩu khác trước khi có thể thực hiện thêm bất kỳ hành động nào trên máy chủ

$ yum install -y httpd php php-mysql php-gd php-curl mod_ssl
6
$ yum install -y httpd php php-mysql php-gd php-curl mod_ssl

Sau đó, tiến hành tạo tài nguyên cơ sở dữ liệu theo yêu cầu của ứng dụng của chúng tôi

$ yum install -y httpd php php-mysql php-gd php-curl mod_ssl
8

Sau khi hoàn tất, hãy nhập dữ liệu hiện có từ bản sao lưu vào cơ sở dữ liệu hoặc tạo các đối tượng cơ sở dữ liệu của bạn theo cách thủ công. Cơ sở dữ liệu của chúng tôi hiện đã sẵn sàng để ứng dụng của chúng tôi sử dụng

Lỗi và Cảnh báo

Trong ứng dụng của chúng tôi, chúng tôi đã có một tệp thử nghiệm đơn giản để đảm bảo ứng dụng có thể kết nối qua socket hay nói cách khác là localhost trên cổng 3306 để loại bỏ tất cả các kết nối cơ sở dữ liệu qua mạng. Ngay lập tức, chúng tôi sẽ nhận được cảnh báo phiên bản không khớp

$ yum install -y httpd php php-mysql php-gd php-curl mod_ssl
9

Đồng thời, bạn cũng sẽ gặp lỗi xác thực với mô-đun php-mysql

$ rpm -qa | egrep 'php-mysql|mysql|maria'
php-mysql-5.4.16-46.el7.x86_64
mariadb-5.5.60-1.el7_5.x86_64
mariadb-libs-5.5.60-1.el7_5.x86_64
mariadb-server-5.5.60-1.el7_5.x86_64

Nếu bạn đang chạy với MySQL Native Driver Library [Php-Mysqlnd], bạn sẽ gặp lỗi sau

$ rpm -qa | egrep 'php-mysql|mysql|maria'
php-mysql-5.4.16-46.el7.x86_64
mariadb-5.5.60-1.el7_5.x86_64
mariadb-libs-5.5.60-1.el7_5.x86_64
mariadb-server-5.5.60-1.el7_5.x86_64

Ngoài ra, cũng sẽ có một vấn đề khác mà bạn sẽ thấy liên quan đến bộ ký tự

$ rpm -qa | egrep 'php-mysql|mysql|maria'
php-mysql-5.4.16-46.el7.x86_64
mariadb-5.5.60-1.el7_5.x86_64
mariadb-libs-5.5.60-1.el7_5.x86_64
mariadb-server-5.5.60-1.el7_5.x86_64

Giải pháp và cách giải quyết

plugin xác thực

Cả thư viện php-mysqlnd và php-mysql cho PHP5 đều không hỗ trợ phương thức xác thực mới cho MySQL. 0. Bắt đầu với MySQL. 0. 4 Phương thức xác thực đã được thay đổi thành 'caching_sha2_password', cung cấp khả năng băm mật khẩu an toàn hơn nếu so với 'mysql_native_password' mặc định trong các phiên bản trước

Để cho phép tương thích ngược trên MySQL của chúng tôi. 0. Trong tệp cấu hình MySQL, thêm dòng sau vào phần [mysqld]

$ rpm -qa | egrep 'php-mysql|mysql|maria'
php-mysql-5.4.16-46.el7.x86_64
mariadb-5.5.60-1.el7_5.x86_64
mariadb-libs-5.5.60-1.el7_5.x86_64
mariadb-server-5.5.60-1.el7_5.x86_64

Khởi động lại MySQL Server và bạn sẽ ổn thôi. Nếu người dùng cơ sở dữ liệu đã được tạo trước khi thay đổi ở trên e. g, thông qua sao lưu và khôi phục, tạo lại người dùng bằng cách sử dụng câu lệnh DROP USER và CREATE USER. MySQL sẽ tuân theo plugin xác thực mặc định mới khi tạo người dùng mới

Phiên bản nhỏ không khớp

Với gói php-mysql, nếu bạn kiểm tra phiên bản thư viện đã cài đặt, bạn sẽ nhận thấy sự khác biệt

$ yum install -y httpd php php-mysql php-gd php-curl mod_ssl
3

Thư viện PHP được biên dịch với MariaDB. 5. 60 libmysqlclient, trong khi phiên bản API máy khách đang ở phiên bản. 6. 28, được cung cấp bởi Gói Percona-Server-Shared-Compat. Bất chấp cảnh báo, bạn vẫn có thể nhận được phản hồi chính xác từ máy chủ

Để chặn cảnh báo này về phiên bản thư viện không khớp, hãy sử dụng gói php-mysqlnd, gói này không phụ thuộc vào thư viện Máy chủ Máy khách MySQL [libmysqlclient]. Đây là cách được đề xuất, như đã nêu trong tài liệu MySQL

Để thay thế thư viện php-mysql bằng php-mysqlnd, chỉ cần chạy

$ rpm -qa | egrep 'php-mysql|mysql|maria'
php-mysql-5.4.16-46.el7.x86_64
mariadb-5.5.60-1.el7_5.x86_64
mariadb-libs-5.5.60-1.el7_5.x86_64
mariadb-server-5.5.60-1.el7_5.x86_64

 

Nếu thay thế php-mysql không phải là một tùy chọn, thì giải pháp cuối cùng là biên dịch PHP bằng MySQL. 0 Client Server [libmysqlclient] theo cách thủ công và sao chép các tệp thư viện đã biên dịch vào thư mục /usr/lib64/php/modules/ , thay thế thư mục mysqli cũ. vì vậy, mysql. vậy và pdo_mysql. vì thế. Đây là một chút rắc rối với tỷ lệ thành công nhỏ, chủ yếu là do sự phụ thuộc của các tệp tiêu đề không được chấp nhận trong phiên bản MySQL hiện tại. Kiến thức về lập trình là cần thiết để làm việc xung quanh đó.

Bộ ký tự không tương thích

Bắt đầu với MySQL. 0. 1, MySQL đã thay đổi bộ ký tự mặc định từ latin1 thành utf8mb4. Bộ ký tự utf8mb4 rất hữu ích vì ngày nay cơ sở dữ liệu không chỉ lưu trữ các ký tự ngôn ngữ mà còn cả các ký hiệu, biểu tượng cảm xúc mới được giới thiệu, v.v. Bộ ký tự utf8mb4 là mã hóa UTF-8 của bộ ký tự Unicode sử dụng một đến bốn byte cho mỗi ký tự, so với utf8 tiêu chuẩn [a. k. a utf8mb3] sử dụng một đến ba byte cho mỗi ký tự

Nhiều ứng dụng cũ không được xây dựng dựa trên bộ ký tự utf8mb4. Vì vậy, sẽ thật tuyệt nếu chúng tôi thay đổi cài đặt ký tự cho máy chủ MySQL thành thứ gì đó có thể hiểu được bằng trình điều khiển PHP kế thừa của chúng tôi. Thêm hai dòng sau vào cấu hình MySQL trong phần [mysqld]

$ rpm -qa | egrep 'php-mysql|mysql|maria'
php-mysql-5.4.16-46.el7.x86_64
mariadb-5.5.60-1.el7_5.x86_64
mariadb-libs-5.5.60-1.el7_5.x86_64
mariadb-server-5.5.60-1.el7_5.x86_64

Theo tùy chọn, bạn cũng có thể thêm các dòng sau vào tệp cấu hình MySQL để hợp lý hóa tất cả quyền truy cập của máy khách để sử dụng utf8

$ rpm -qa | egrep 'php-mysql|mysql|maria'
php-mysql-5.4.16-46.el7.x86_64
mariadb-5.5.60-1.el7_5.x86_64
mariadb-libs-5.5.60-1.el7_5.x86_64
mariadb-server-5.5.60-1.el7_5.x86_64
7

Đừng quên khởi động lại máy chủ MySQL để thay đổi có hiệu lực. Tại thời điểm này, ứng dụng của chúng ta sẽ tương thích với MySQL 8. 0

Đó là nó cho bây giờ. Nếu bạn gặp bất kỳ vấn đề nào khác khi chuyển các ứng dụng cũ sang MySQL 8, vui lòng chia sẻ với chúng tôi trong phần nhận xét. 0

Làm cách nào để cài đặt PHP MySQLi trong Linux?

Đang tải xuống MySQL. Tiện ích mở rộng MySQLi được thiết kế để hoạt động với phiên bản MySQL. 1. .
Cài đặt MySQL trên Linux/UNIX. .
Cài đặt MySQL trên Windows. .
Xác minh cài đặt MySQL. .
Sử dụng tiện ích mysqladmin để lấy trạng thái máy chủ. .
Thực thi các lệnh SQL đơn giản bằng MySQL Client. .
Các bước sau cài đặt. .
Chạy MySQL khi khởi động

Làm cách nào để bật MySQLi trong PHP?

Mở php của bạn. tệp ini [tệp cấu hình php] bên trong thư mục PHP [hoặc thư mục windows] của bạn. Tìm kiếm mysqli và bật dll bằng cách xóa ; . Bạn có thể phải khởi động lại hệ thống của mình. . You may have to re-boot your system.

MySQLi có chạy PHP 7 không?

PHP 7 đã loại bỏ hỗ trợ cho phần mở rộng Mysql và ảnh hưởng đến những điều sau. Mọi truy vấn sử dụng chức năng mysql_connect sẽ không hoạt động. PHP 7 chỉ cho phép kết nối với cơ sở dữ liệu MySQL bằng Mysqli hoặc PDO_MySQL .

MySQLi có bị phản đối trong PHP 7 không?

Phần mở rộng mysqli bao gồm những gì? . Cái cũ nhất sử dụng tiện ích mở rộng MySQL, không được dùng nữa kể từ PHP. 5 và xóa hoàn toàn trong PHP 7 . Hàm mysql[] không còn hoạt động trong PHP.

Chủ Đề