Cara Install PHP 7 dengan Apache dan MariaDB di CentOS 7/Debian 8


Minggu lalu (lebih tepatnya pada 21 Agustus 2015), tim pengembangan PHP mengumumkan ketersediaan rilis terbaru PHP 7 dan mendorong pengguna dan pengembang di seluruh dunia untuk mengujinya. dia.

Namun, kita harus mencatat bahwa karena ini adalah versi RC (Release Candidate), diperkirakan ada bug atau ketidakcocokan dengan pengaturan yang ada sehingga pengguna diminta untuk laporkan mereka menggunakan sistem pelacakan bug dan jangan menggunakan PHP 7 dalam produksi saat masih dalam tahap tersebut.

Sisi baiknya adalah versi ini menyertakan beberapa perbaikan (Anda mungkin ingin merujuk ke halaman ini di repositori GitHub proyek untuk daftar detail fitur baru dan penyempurnaan), dengan fitur yang paling membedakan adalah peningkatan performa yang luar biasa jika dibandingkan dengan versi sebelumnya.

Artikel ini akan memandu Anda melalui proses instalasi dan kompilasi PHP 7 RC1 dari tarball sumber bersama dengan Apache dan MariaDB di CentOS 7 dan Debian 8 Jessie. Petunjuk yang sama juga dapat digunakan pada distribusi berbasis CentOS seperti RHEL, Fedora, Scientific Linux dan Debian< berbasis seperti Ubuntu/Mint.

Menginstal PHP 7 di CentOS 7 dan Debian 8

Sebagaimana dinyatakan dalam pendahuluan, karena versi ini adalah RC dan bukan rilis stabil, kami tidak dapat berharap untuk menemukannya di repositori. Oleh karena itu, kita harus mengunduh kode sumber dan mengkompilasi program dari awal.

Namun sebelum kita melakukannya, kita perlu mengingat bahwa untuk dapat memanfaatkan PHP 7 dengan lebih baik dan mungkin cara terbaik untuk mencobanya adalah dengan menginstalnya bersama dengan Apache dan MariaDB – yang BISA kita temukan di repositori:

Di CentOS 7


yum update && yum install httpd mariadb mariadb-server

Di Debian 8


aptitude update && aptitude install apache2 mariadb-server mariadb-client mariadb.common

Apa pun kasusnya, tarball dengan kode sumber PHP dapat diunduh dan diekstraksi sebagai berikut:


wget https://downloads.php.net/~ab/php-7.0.0RC1.tar.gz
tar xzf php-7.0.0RC1.tar.gz -C /opt

Setelah selesai, mari beralih ke /opt/php-7.0.0RC1 dan jalankan skrip buildconf dengan tombol –force untuk memaksa membangun versi RC:


ls


cd /opt/php-7.0.0RC1.tar.gz
./buildconf --force

Sekarang saatnya menjalankan perintah konfigurasi kami yang terkenal. Meskipun opsi di bawah ini akan memastikan instalasi PHP 7 standar, Anda dapat merujuk ke daftar opsi lengkap di manual PHP untuk menyesuaikan instalasi dengan lebih baik sesuai kebutuhan Anda:


./configure \
--prefix=$HOME/php7/usr \
--with-config-file-path=$HOME/php7/usr/etc \
--enable-mbstring \
--enable-zip \
--enable-bcmath \
--enable-pcntl \
--enable-ftp \
--enable-exif \
--enable-calendar \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--with-curl \
--with-mcrypt \
--with-iconv \
--with-gmp \
--with-pspell \
--with-gd \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--with-zlib-dir=/usr \
--with-xpm-dir=/usr \
--with-freetype-dir=/usr \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--with-openssl \
--with-pdo-mysql=/usr \
--with-gettext=/usr \
--with-zlib=/usr \
--with-bz2=/usr \
--with-recode=/usr \
--with-mysqli=/usr/bin/mysql_config \
--with-apxs2

Jika Anda mengalami kesalahan berikut:


configure: error: no acceptable C compiler found in $PATH
see 'config.log' for more details

Cukup instal gcc dan dependensi dengan perintah berikut dan jalankan kembali perintah konfigurasi di atas.


yum install gcc       [On CentOS 7 box]
aptitude install gcc  [On Debian 8 box]

Anda sedang dalam proses mengkompilasi PHP 7, yang mungkin memakan waktu cukup lama. Jika ada pustaka atau sumber daya lain yang hilang, proses ini akan gagal tetapi Anda selalu dapat menginstalnya dan menjalankan konfigurasi lagi.

Misalnya, saya harus menginstal libxml2-devel setelah mendapatkan pesan kesalahan berikut:


configure: error: xml2-config not found. Please check your libxml2 installation.

Sayangnya, kami tidak mungkin mencakup semua skenario kasus karena perangkat lunak yang diinstal mungkin berbeda dari satu sistem ke sistem lainnya. Selama instalasi, Anda mungkin ingin merujuk ke halaman ini yang menguraikan beberapa kesalahan yang mungkin Anda alami saat menginstal PHP dari sumber, beserta solusinya masing-masing.

Di CentOS 7

Berikut daftar lengkap paket yang harus saya instal di kotak CentOS 7 sebelum dapat menyelesaikan proses konfigurasi:


gcc
libxml2-devel
pkgconfig
openssl-devel
bzip2-devel
curl-devel
libpng-devel
libpng-devel
libjpeg-devel
libXpm-devel
freetype-devel
gmp-devel
libmcrypt-devel
mariadb-devel
aspell-devel
recode-devel
httpd-devel

Anda dapat menginstal semua paket yang diperlukan di atas dengan satu perintah yum seperti yang ditunjukkan.


yum install gcc libxml2-devel pkgconfig openssl-devel bzip2-devel libpng-devel libpng-devel libjpeg-devel libXpm-devel freetype-devel gmp-devel libmcrypt-devel mariadb-devel aspell-devel recode-devel httpd-devel

Pesan berikut menunjukkan bahwa konfigurasi berhasil diselesaikan:

Lalu lari,


make
make install

Ketika instalasi selesai, Anda dapat memeriksa versi menggunakan baris perintah:

Di Debian 8

Di Debian, saya harus menginstal paket berikut agar proses konfigurasi berhasil diselesaikan:


make
libxml2-dev
libcurl4-openssl-dev
libjpeg-dev
libpng-dev
libxpm-dev
libmysqlclient-dev
libicu-dev
libfreetype6-dev
libxslt-dev
libssl-dev
libbz2-dev
libgmp-dev
libmcrypt-dev
libpspell-dev 
librecode-dev
apache2-dev

Anda dapat menginstal semua paket yang diperlukan di atas dengan perintah apt-get di Debian 8.


apt-get install make libxml2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libxpm-dev libmysqlclient-dev libicu-dev libfreetype6-dev libxslt-dev libssl-dev libbz2-dev libgmp-dev libmcrypt-dev libpspell-dev librecode-dev apache2-dev

Kemudian tambahkan, –with-libdir=/lib/x86_64-linux-gnu ke opsi konfigurasi, dan buat symlink berikut ke file header gmp.h:


ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h

Kemudian jalankan make dan make install seperti pada kasus sebelumnya. Dalam 10-15 menit kompilasi seharusnya sudah selesai dan kami dapat memverifikasi versi PHP yang diinstal seperti sebelumnya:


make
make install

Menyiapkan php.ini dan Menguji Instalasi PHP 7

Saat Anda menginstal PHP dari sumber, disediakan dua contoh php.ini. Dalam hal ini, mereka berada di dalam /opt/php-7.0.0RC1:


ls -l /opt/php-7.0.0RC1 | grep php.ini

Anda sekarang perlu menyalin salah satunya ke /usr/local/lib, yang ditetapkan sebagai lokasi default untuk file tersebut sesuai catatan Instalasi:


cp /opt/php-7.0.0RC1/php.ini-development /usr/local/lib

Dan jangan lupa untuk menambahkan arahan konfigurasi ini ke file konfigurasi utama Apache.


/etc/httpd/conf/httpd.conf    [On CentOS 7 box]
/etc/apache2/apache2.conf in  [On Debian 8 box] 

LoadModule php7_module        /usr/lib64/httpd/modules/libphp7.so
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>

Di Debian 8 Anda dapat menghilangkan baris LoadModule dan Anda juga perlu menghapus dan membuat tautan simbolis berikut ke modul Apache yang ditunjukkan:


cd /etc/apache2
rm mods-enabled/mpm_event.conf
rm mods-enabled/mpm_event.load
ln -s mods-available/mpm_prefork.conf mpm_prefork.conf
ln -s mods-available/mpm_prefork.load mpm_prefork.load

Kemudian, restart server web:


systemctl restart httpd     [On CentOS 7 box]
systemctl restart apache2   [On Debian 8 box]

Jika memulai Apache di CentOS 7 menghasilkan pesan kesalahan yang mengatakan modul libphp7.so tidak dapat ditemukan, cukup salin ke jalur yang ditunjukkan dari /opt/php-7.0.0RC1/.libs/libphp7.so.

Cara klasik untuk menguji instalasi PHP/Apache adalah menggunakan file phpinfo(). Buat file bernama test.php dengan konten berikut di root dokumen server web (/var/www/html di kedua distribusi):


<?php
phpinfo();
?>

Dan luncurkan browser di klien dalam jaringan Anda untuk menguji:


http://localhost/test.php
OR
http://IP-address/test.php

Ringkasan

Pada artikel ini kami telah menjelaskan cara menginstal PHP 7 dari kode sumber, RC terbaru dari bahasa skrip sisi server populer yang bertujuan untuk meningkatkan kinerja pada nilai yang belum pernah terjadi sebelumnya. Hingga mencapai level stabil pada November tahun ini 2015, Anda SANGAT disarankan untuk JANGAN gunakan rilis ini di lingkungan produksi.

Jika Anda memiliki pertanyaan/komentar/saran tentang artikel ini, silakan beri tahu kami melalui formulir di bawah.