Solusi 1:
Saya mengikuti instruksi dari Instal Apache/PHP 5.4.10 di Fedora 17/16, CentOS/RHEL 6.3/5.8 dengan sedikit modifikasi. Mungkin butuh 10 menit. Perintah persis saya ditunjukkan di bawah ini. Perhatikan bahwa perintah pertama harus diubah dari apa yang ditampilkan di artikel. Perubahannya adalah dari epel-release-6-7.noarch.rpm
ke epel-release-6-8.noarch.rpm
.
-
Bagaimana cara menambahkan repo yang menyediakan PHP 5.4 ke dalam yum?
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm yum install http://rpms.remirepo.net/enterprise/remi-release-6.rpm
-
Bisakah ini menggantikan versi PHP saat ini di CentOS dengan mulus? Bagi saya, perintah berikut berfungsi dan tidak ada halaman web PHP saya yang rusak. Jarak tempuh Anda mungkin berbeda.
yum --enablerepo=remi install httpd php php-common yum --enablerepo=remi install php-pecl-apc php-cli php-pear php-pdo php-mysql php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml service httpd restart
-
Bagaimana saya dapat beralih kembali ke repo resmi jika mendukung PHP5.4? Saya belum menguji perintah untuk menghapus dan menginstal ulang PHP dari repositori CentOS, tetapi ini seharusnya berfungsi.
# Remove the Remi packages. Note the reversed command order yum remove php-pecl-apc php-cli php-pear php-pdo php-mysql php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml yum remove httpd php php-common # Install the CentOS packages. yum install httpd php php-common yum install php-pecl-apc php-cli php-pear php-pdo php-mysql php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml
-
Apakah akan ada potensi untuk merusak modul PHP yang sedang saya [sic] gunakan? Ya. Menggunakan CentOS versi terbaru (6.2?) dengan Zend diinstal menggunakan installer Zend, pemutakhiran di atas merusak Zend.
Semua perintah di atas dijalankan sebagai root
. Praktik terbaik adalah masuk sebagai pengguna yang tidak memiliki hak istimewa dan menggunakan sudo
. (Ini adalah VM pengembangan dengan snapshot saat ini...)
Juga, JANGAN aktifkan repositori Remi secara default - di masa lalu saya menjadi pintar dan mengaktifkannya secara default dan semuanya rusak, bahkan dengan prioritas repositori.
Solusi 2:
Peningkatan dari jawaban Webtatic lainnya:
1 . Menggunakan panduan di http://www.webtatic.com/packages/php54/:
rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
2 . Anda harus terlebih dahulu melihat apa yang perlu diganti oleh paket terinstal yang ada, Anda dapat melakukan ini dengan menggunakan yum shell untuk menggabungkan penghapusan php-common dan menginstal php54w-common dalam satu transaksi (sehingga dependensi bersama tidak dihapus)
yum shell
> remove php-common
> install php54w-common
> run
…
Is this ok [y/N]: n
Jangan ucapkan "y" pada hasilnya, tetapi catat semua paket yang disebutkan dalam "Menghapus ketergantungan", mis.
Removing for dependencies:
php
php-cli
php-pear
php-pecl-memcache
php-mysql
Jika ada paket lain selain php* dalam daftar ini maka Anda tidak dapat dengan mulus beralih ke Webtatic PHP 5.4, tetapi harus menyelidiki alternatifnya. Webtatic memiliki paket pengganti untuk semua paket php dasar (lihat paket yang tercantum pada halaman yang ditautkan di 1. untuk konfirmasi), jadi seharusnya tidak ada masalah, kecuali jika Anda menggunakan repositori pihak ke-3 lain yang memiliki paket yang diinstal tergantung pada versi php tertentu diinstal.
Untuk sisa penginstalan (masih dalam yum shell), Anda cukup menghapus paket-paket ini dan menginstal rekanan php54w-* mereka:
> remove php-common php php-cli php-pear php-pecl-memcache php-mysql
> install php54w-common php54w php54w-cli php54w-pear php54w-pecl-memcache php54w-mysql
> run
…
Is this ok [y/N]: y
Anda kemudian hanya akan melihat paket yang telah Anda atur untuk dihapus dan diinstal dalam daftar, dan Anda dapat mengonfirmasi penginstalan untuk beralih. Layanan apa pun yang saat ini berjalan dengan php dimuat harus dimulai ulang, misalnya httpd atau php-fpm.
Karena ini 'mulus', setiap perubahan perangkat lunak yang terjadi saat pengguna dapat mengakses situs web harus memiliki konsekuensi yang sepenuhnya dipahami. Pustaka bersama dihapus dan ditambahkan saat proses belum dimuat, mereka berpotensi memuat saat pustaka bersama tidak ada. Lebih baik melakukan pemutakhiran perangkat lunak seperti ini secara luring, dan sebaiknya diuji pada mesin non-produksi terlebih dahulu untuk memverifikasi bahwa proses berfungsi seperti yang diharapkan.
3 . Untuk beralih ke paket php54 dasar CentOS hipotetis (CentOS 5 menggunakan awalan php53), Anda cukup menjalankan langkah-langkah di atas dengan mengganti penghapusan php dengan penghapusan php54w, dan instalasi php54w dengan instalasi php54 mis.
yum shell
> remove php54w-common
> install php54-common
> run
…
Is this ok [y/N]: n
…
> remove php54w-common php54w php54w-cli php54w-pear php54w-pecl-memcache php54w-mysql
> install php54-common php54 php54-cli php54-pear php54-pecl-memcache php54-mysql
> run
Is this ok [y/N]: y
Namun untuk beralih ke basis hipotetis php54, kemungkinan tidak akan ada alternatif untuk beberapa paket (misalnya tidak ada ekstensi php53-pecl-memcache di CentOS 5) dan Webtatic memiliki paket yang tidak tersedia di basis CentOS (misalnya php54w -pecl-zendopcache). Jika tidak ada, biasanya Anda tidak memiliki opsi lain selain menggunakan pecl secara langsung untuk menginstalnya.
4 . Setiap pemutakhiran PHP dapat menimbulkan bug, dan situs web harus diuji ulang. Ini tidak khusus untuk Webtatic, tetapi gagasan umum bahwa fitur baru memperkenalkan bug baru.
Tidak seperti repositori Remi dalam jawaban yang diterima, repositori Webtatic EL6 tidak pernah menggunakan nama paket yang sama dengan repositori dasar CentOS, jadi tidak akan mengesampingkan penginstalan/peningkatan paket yang tidak ingin Anda alihkan, dan karena itu diaktifkan secara default.
Penafian:Saya adalah pemilik/pengelola Webtatic