GNU/Linux >> Belajar Linux >  >> Arch Linux

Cara Kompilasi PHP7.0/PHP7.1 Dari Sumber di Arch Linux

Tutorial ini menunjukkan cara mengkompilasi PHP7.0/PHP7.1 di Arch Linux dan menginstalnya bersama PHP7.2. Arch Linux adalah distribusi rilis bergulir dengan perangkat lunak terbaru dan terhebat. PHP7.2 mendarat di repositori Arch Linux. Beberapa aplikasi web seperti WordPress bekerja dengan baik dengan PHP7.2, tetapi yang lain seperti NextCloud saat ini tidak mendukung PHP7.2. Versi NextCloud yang akan datang – NextCloud 13 – dikatakan kompatibel dengan PHP7.2.

Kemarin saya melakukan upgrade pada server Arch Linux saya, yang mengakibatkan PHP7.2 menggantikan PHP7.1 dan antarmuka web NextCloud saya berhenti bekerja. AUR (Arch User Repository) menyediakan PHP7.0. Saya mencoba menginstalnya dengan Yaourt, tetapi verifikasi tanda tangan gagal, jadi saya tidak punya pilihan lain selain mengkompilasi PHP7.0/PHP7.1 sendiri.

Cara Kompilasi PHP7.0/PHP7.1 di Arch Linux

Pertama, perbarui semua perangkat lunak.

sudo pacman -Syu

Instal wget dan unduh kode sumber PHP. Saya menggunakan versi terbaru dari PHP7.0. Ganti nomor versi dengan versi pilihan Anda.

sudo pacman -S wget

wget http://php.net/distributions/php-7.0.26.tar.gz

Ekstrak tarballnya.

tar xvf php-7.0.26.tar.gz

Cd ke direktori yang baru dibuat.

cd php-7.0.26

Instal alat dan dependensi build.

sudo pacman -S gcc make bison gawk re2c libxml2 libwebp freetype2 c-client libmcrypt libxslt

Konfigurasikan lingkungan dengan parameter berikut. Salin seluruh perintah dan tempel ke jendela terminal Anda.

./configure \
--prefix=/opt/php-7.0.26                      \
--with-config-file-path=/opt/php-7.0.26/etc   \
--with-zlib-dir                              \
--with-freetype-dir                          \
--enable-mbstring                            \
--with-libxml-dir=/usr                       \
--enable-soap                                \
--enable-calendar                            \
--with-curl                                  \
--with-mcrypt                                \
--with-zlib                                  \
--with-gd                                    \
--disable-rpath                              \
--enable-inline-optimization                 \
--with-bz2                                   \
--with-zlib                                  \
--enable-sockets                             \
--enable-sysvsem                             \
--enable-sysvshm                             \
--enable-pcntl                               \
--enable-mbregex                             \
--enable-exif                                \
--enable-bcmath                              \
--with-mhash                                 \
--enable-zip                                 \
--with-pcre-regex                            \
--with-pdo-mysql                             \
--with-mysqli                                \
--with-mysql-sock=/var/run/mysqld/mysqld.sock \
--with-jpeg-dir=/usr                         \
--with-png-dir=/usr                          \
--enable-gd-native-ttf                       \
--with-openssl                               \
--with-fpm-user=http                         \
--with-fpm-group=http                        \
--enable-ftp                                 \
--with-imap                                  \
--with-imap-ssl                              \
--with-kerberos                              \
--with-gettext                               \
--with-xmlrpc                                \
--with-xsl                                   \
--enable-opcache                             \
--enable-fpm

Setelah selesai, mari kita kompilasi PHP7 dengan perintah make. Ganti 2 dengan jumlah inti CPU pada mesin Anda. Secara default make menggunakan 1 inti, Anda dapat mempercepat proses kompilasi dengan menggunakan semua inti yang tersedia.

make -j2

Proses kompilasi dapat memakan waktu, tergantung pada daya CPU Anda. Setelah selesai, jalankan pengujian.

make test

Sekarang instal PHP. Direktori instalasi adalah /opt/php-7.0.26/ .

sudo make install

Dari tangkapan layar, kita dapat melihat biner PHP-FPM diinstal ke /opt/php-7.0.26/sbin/ dan direktori konfigurasi PHP-FPM adalah /opt/php-7.0.26/etc/ . Sebelum menjalankan PHP-FPM, kita perlu membuat file konfigurasi PHP-FPM. Ada dua contoh file konfigurasi jadi kita tinggal menyalinnya saja.

sudo cp /opt/php-7.0.26/etc/php-fpm.conf.default /opt/php-7.0.26/etc/php-fpm.conf

sudo cp /opt/php-7.0.26/etc/php-fpm.d/www.conf.default /opt/php-7.0.26/etc/php-fpm.d/www.conf

Edit www.conf file konfigurasi.

sudo nano /opt/php-7.0.26/etc/php-fpm.d/www.conf

Secara default, PHP-FPM mendengarkan pada soket TCP 127.0.0.1:9000, kita dapat membuatnya mendengarkan pada soket Unix. Temukan baris berikut.

listen = 127.0.0.1:9000

Tambahkan titik koma di awal untuk mengomentarinya. Kemudian tambahkan baris berikut di bawahnya.

listen = /run/php-fpm/php7.0-fpm.sock

Selanjutnya, temukan 3 baris berikut dan batalkan komentarnya.

;listen.owner = http
;listen.group = http
;listen.mode = 0660

Simpan dan tutup file. Selanjutnya salin file php.ini.

sudo cp ~/php-7.0.26/php.ini-production /opt/php-7.0.26/etc/php.ini

Edit filenya.

sudo nano /opt/php-7.0.26/etc/php.ini

Tambahkan berikut ini di bagian bawah file.

include_path = "/opt/php-7.0.26/lib/php"

Simpan dan tutup file. Sekarang kita dapat memulai PHP-FPM dengan:

sudo /opt/php-7.0.26/sbin/php-fpm

Buat Unit Layanan Systemd

Buat unit layanan Systemd untuk PHP7.0.

sudo nano /etc/systemd/system/php7.0-fpm.service

Salin dan tempel baris berikut ke dalam file.

[Unit]
Description=The PHP FastCGI Process Manager
After=network.target

[Service]
Type=simple
PIDFile=/run/php-fpm/php7.0-fpm.pid
ExecStart=/opt/php-7.0.26/sbin/php-fpm --nodaemonize --fpm-config /opt/php-7.0.26/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID

[Install]
WantedBy=multi-user.target

Simpan dan tutup file. Sekarang kita dapat mematikan PHP7.0-FPM yang sedang berjalan dan menjalankannya melalui systemd. Temukan PID dari proses master PHP7.0-FPM.

ps aux | grep php-fpm

Seperti yang Anda lihat, PID adalah 5066 di mesin saya. Jadi saya bisa membunuhnya dengan:

sudo kill 5066

Perhatikan bahwa biner PHP7.2-FPM juga bernama php-fpm .Jika Anda menggunakan pkill php-fpm , maka PHP7.2-FPM dan PHP7.0-FPM akan berhenti. Sekarang mulai php7.0-fpm melalui systemd.

sudo systemctl start php7.0-fpm

Aktifkan mulai otomatis saat boot.

sudo systemctl enable php7.0-fpm

Periksa statusnya.

systemctl status php-fpm

Membuat Nginx Menggunakan PHP7.0-FPM

Untuk membuat Nginx menggunakan PHP7.0 alih-alih PHP7.2, buka file blok server Nginx, temukan baris berikut.

fastcgi_pass unix:/run/php-fpm/php-fpm.sock;

Ubah ke

fastcgi_pass unix:/run/php-fpm/php7.0-fpm.sock;

Mungkin ada lebih dari satu contoh dari baris ini. Anda perlu mengubah semuanya. Kemudian buat http (pengguna server web di Arch Linux) sebagai pemilik /run/php-fpm/php7.0-fpm.sock berkas.

sudo chown http:http /run/php-fpm/php7.0-fpm.sock

Uji konfigurasi Nginx.

sudo nginx -t

Jika pengujian berhasil, muat ulang Nginx agar perubahan diterapkan.

sudo systemctl reload nginx

Itu dia! Saya harap tutorial ini membantu Anda mengkompilasi PHP7.0/7.1 dari sumber di Arch Linux. Seperti biasa, jika menurut Anda postingan ini bermanfaat, berlangganan newsletter gratis kami untuk mendapatkan tips dan trik yang lebih bermanfaat.


Arch Linux
  1. Cara Mengkompilasi Brotli dari Sumber di Ubuntu 18.04 LTS

  2. Cara Mengabaikan Paket Agar Tidak Diupgrade Di Arch Linux

  3. Cara Instal PHP di Linux Mint 19

  1. Cara Mengkompilasi Brotli dari Sumber di CentOS 7

  2. Cara Mengkompilasi Alat Kompresi Brotli dari Sumber di Debian 9

  3. Cara Mengkompilasi Alat Kompresi Brotli dari Sumber di Fedora 29

  1. Cara Menginstal Arch Linux

  2. Cara menggunakan Pacman di Arch Linux

  3. Cara Mengkompilasi dan Menginstal Perangkat Lunak dari Kode Sumber di Linux