ວິທີການຕິດຕັ້ງ PHP 7 ກັບ Apache ແລະ MariaDB ໃນ CentOS 7/Debian 8
ອາທິດທີ່ຜ່ານມາ (ທີ່ຊັດເຈນກວ່ານີ້ໃນວັນທີ 21 ສິງຫາ 2015), ທີມພັດທະນາ PHP ໄດ້ປະກາດຄວາມພ້ອມຂອງ PHP 7 ລຸ້ນ ໃໝ່ ຫຼ້າສຸດແລະຊຸກຍູ້ໃຫ້ຜູ້ໃຊ້ແລະນັກພັດທະນາທົ່ວໂລກທົດສອບມັນ.
ເຖິງຢ່າງໃດກໍ່ຕາມ, ພວກເຮົາຕ້ອງສັງເກດວ່າເນື່ອງຈາກວ່ານີ້ແມ່ນລຸ້ນ RC (ປ່ອຍຕົວຜູ້ສະ ໝັກ), ຄາດວ່າມັນອາດຈະມີຂໍ້ບົກພ່ອງຫຼືຄວາມບໍ່ສອດຄ່ອງກັບການຕັ້ງຄ່າທີ່ມີຢູ່ແລ້ວດັ່ງນັ້ນຜູ້ໃຊ້ຈະຖືກຂໍໃຫ້ລາຍງານໃຫ້ພວກເຂົາໃຊ້ລະບົບຕິດຕາມຂໍ້ຜິດພາດແລະບໍ່ໃຊ້ PHP 7 ໃນ ການຜະລິດໃນຂະນະທີ່ມັນຍັງຢູ່ໃນໄລຍະນັ້ນ.
ດ້ານທີ່ສະຫວ່າງແມ່ນວ່າລຸ້ນນີ້ມີການແກ້ໄຂຫຼາຍຢ່າງ (ທ່ານອາດຈະຕ້ອງການອ້າງອີງເຖິງ ໜ້າ ນີ້ຢູ່ໃນຫໍສະ ໝຸດ GitHub ຂອງໂຄງການ ສຳ ລັບລາຍລະອຽດຂອງຄຸນລັກສະນະແລະການປັບປຸງ ໃໝ່), ເຊິ່ງຄຸນລັກສະນະທີ່ໂດດເດັ່ນທີ່ສຸດແມ່ນການເພີ່ມຂື້ນຂອງການປະຕິບັດທີ່ໂດດເດັ່ນເມື່ອທຽບກັບກ່ອນ ໜ້າ ສະບັບ.
ບົດຂຽນນີ້ຈະພາທ່ານຍ່າງຜ່ານຂັ້ນຕອນການຕິດຕັ້ງແລະລວບລວມ PHP 7 RC1 ຈາກ tarball ແຫຼ່ງພ້ອມກັບ Apache ແລະ MariaDB ໃນ CentOS 7 ແລະ Debian 8 Jessie. ຄໍາແນະນໍາດຽວກັນນີ້ຍັງເຮັດວຽກກ່ຽວກັບການແຈກຈ່າຍທີ່ອີງໃສ່ CentOS ເຊັ່ນ RHEL, Fedora, Scientific Linux ແລະ Debian ທີ່ມີພື້ນຖານເຊັ່ນ Ubuntu/Mint.
ການຕິດຕັ້ງ PHP 7 ໃນ CentOS 7 ແລະ Debian 8
ດັ່ງທີ່ໄດ້ກ່າວໃນການແນະ ນຳ, ເນື່ອງຈາກວ່າລຸ້ນນີ້ແມ່ນ RC ແທນທີ່ຈະມີການປ່ອຍຕົວທີ່ ໝັ້ນ ຄົງ, ພວກເຮົາບໍ່ສາມາດຄາດຫວັງວ່າຈະພົບເຫັນມັນຢູ່ໃນຫໍໄຕ. ດ້ວຍເຫດຜົນດັ່ງກ່າວ, ພວກເຮົາຈະຕ້ອງດາວໂຫລດລະຫັດແຫຼ່ງຂໍ້ມູນແລະລວບລວມໂປແກຼມດັ່ງກ່າວຈາກຮອຍຂີດຂ່ວນ.
ແຕ່ກ່ອນທີ່ພວກເຮົາຈະເຮັດແນວນັ້ນ, ເຖິງຢ່າງໃດກໍ່ຕາມ, ພວກເຮົາ ຈຳ ເປັນຕ້ອງຈື່ໄວ້ວ່າເພື່ອທີ່ຈະ ນຳ ໃຊ້ປະໂຫຍດຈາກ PHP 7 ແລະບາງທີວິທີທີ່ດີທີ່ສຸດທີ່ຈະທົດລອງໃຊ້ແມ່ນການຕິດຕັ້ງມັນພ້ອມກັບ Apache ແລະ MariaDB - ເຊິ່ງພວກເຮົາສາມາດຊອກຫາຢູ່ໃນຫໍສະ ໝຸດ:
# yum update && yum install httpd mariadb mariadb-server
# aptitude update && aptitude install apache2 mariadb-server mariadb-client mariadb.common
ບໍ່ວ່າໃນກໍລະນີໃດກໍ່ຕາມ, ຕາຕະລາງທີ່ມີລະຫັດແຫຼ່ງຂອງ PHP ສາມາດດາວໂຫລດແລະສະກັດໄດ້ດັ່ງຕໍ່ໄປນີ້:
# wget https://downloads.php.net/~ab/php-7.0.0RC1.tar.gz # tar xzf php-7.0.0RC1.tar.gz -C /opt
ເມື່ອເຮັດແລ້ວ, ໃຫ້ຍ້າຍເຂົ້າໄປໃນ /opt/php-7.0.0RC1 ແລະປະຕິບັດ script buildconf ດ້ວຍປຸ່ມ –force ເພື່ອບັງຄັບການກໍ່ສ້າງລຸ້ນ RC:
# ls
# cd /opt/php-7.0.0RC1.tar.gz # ./buildconf --force
ດຽວນີ້ເຖິງເວລາແລ້ວທີ່ທ່ານຕ້ອງປະຕິບັດ ຄຳ ສັ່ງການຕັ້ງຄ່າທີ່ມີຊື່ສຽງຂອງພວກເຮົາ. ໃນຂະນະທີ່ທາງເລືອກຂ້າງລຸ່ມນີ້ຈະຮັບປະກັນການຕິດຕັ້ງ PHP 7 ແບບມາດຕະຖານ, ທ່ານສາມາດອ້າງອີງໃສ່ລາຍຊື່ຕົວເລືອກທີ່ສົມບູນໃນປື້ມຄູ່ມື PHP ເພື່ອປັບແຕ່ງການຕິດຕັ້ງທີ່ດີຂື້ນຕາມຄວາມຕ້ອງການຂອງທ່ານ:
# ./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
ຖ້າທ່ານແລ່ນເຂົ້າໄປໃນຂໍ້ຜິດພາດດັ່ງຕໍ່ໄປນີ້:
configure: error: no acceptable C compiler found in $PATH see 'config.log' for more details
ພຽງແຕ່ຕິດຕັ້ງ gcc ແລະ dependencies ດ້ວຍ ຄຳ ສັ່ງຕໍ່ໄປນີ້ແລ້ວ ດຳ ເນີນການ ຄຳ ສັ່ງ configure ຂ້າງເທິງອີກຄັ້ງ.
# yum install gcc [On CentOS 7 box] # aptitude install gcc [On Debian 8 box]
ທ່ານ ກຳ ລັງຢູ່ໃນເສັ້ນທາງຂອງທ່ານໃນການລວບລວມ PHP 7, ເຊິ່ງອາດໃຊ້ເວລາໃນໄລຍະ ໜຶ່ງ. ຖ້າມີຫໍສະມຸດຫລືຊັບພະຍາກອນອື່ນໆທີ່ຂາດຫາຍໄປ, ຂະບວນການນີ້ຈະລົ້ມເຫລວແຕ່ທ່ານສາມາດຕິດຕັ້ງພວກມັນຢູ່ສະ ເໝີ ແລະ ດຳ ເນີນການຕັ້ງຄ່າ ໃໝ່.
ຕົວຢ່າງ, ຂ້ອຍຕ້ອງຕິດຕັ້ງ libxml2-devel ຫຼັງຈາກໄດ້ຮັບຂໍ້ຄວາມຜິດພາດດັ່ງຕໍ່ໄປນີ້:
configure: error: xml2-config not found. Please check your libxml2 installation.
ແຕ່ໂຊກບໍ່ດີ, ພວກເຮົາບໍ່ສາມາດປົກຄຸມສະຖານະການທຸກໆກໍລະນີເນື່ອງຈາກຊອບແວທີ່ຕິດຕັ້ງອາດຈະແຕກຕ່າງກັນໄປຈາກລະບົບ ໜຶ່ງ ໄປສູ່ອີກລະບົບ ໜຶ່ງ. ໃນລະຫວ່າງການຕິດຕັ້ງ, ທ່ານອາດຈະຕ້ອງການອ້າງອີງເຖິງ ໜ້າ ນີ້ເຊິ່ງຊີ້ແຈງຂໍ້ຜິດພາດຫລາຍຢ່າງທີ່ທ່ານອາດຈະແລ່ນເຂົ້າໄປໃນຂະນະທີ່ຕິດຕັ້ງ PHP ຈາກແຫລ່ງທີ່ມາພ້ອມກັບວິທີແກ້ໄຂທີ່ກ່ຽວຂ້ອງ.
ນີ້ແມ່ນບັນຊີລາຍຊື່ທີ່ສົມບູນຂອງແພັກເກດທີ່ຂ້ອຍຕ້ອງຕິດຕັ້ງຢູ່ໃນກ່ອງ CentOS 7 ຂອງຂ້ອຍກ່ອນທີ່ຈະສາມາດເຮັດ ສຳ ເລັດຂັ້ນຕອນການຕັ້ງຄ່າ:
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
ທ່ານສາມາດຕິດຕັ້ງທຸກຊຸດທີ່ຕ້ອງການມາຂ້າງເທິງດ້ວຍ ຄຳ ສັ່ງ yum ດຽວເທົ່າກັບທີ່ສະແດງ.
# 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
ຂໍ້ຄວາມຕໍ່ໄປນີ້ຊີ້ໃຫ້ເຫັນວ່າການຕັ້ງຄ່າ ສຳ ເລັດແລ້ວ:
ແລ້ວແລ່ນ,
# make # make install
ເມື່ອການຕິດຕັ້ງ ສຳ ເລັດທ່ານສາມາດກວດເບິ່ງເວີຊັນໂດຍໃຊ້ເສັ້ນ ຄຳ ສັ່ງ:
ໃນ Debian, ຂ້ອຍຕ້ອງຕິດຕັ້ງຊຸດຕໍ່ໄປນີ້ ສຳ ລັບຂະບວນການ ກຳ ນົດການຕັ້ງຄ່າໃຫ້ ສຳ ເລັດ:
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
ທ່ານສາມາດຕິດຕັ້ງທຸກຊຸດທີ່ຕ້ອງການຂ້າງເທິງດ້ວຍ ຄຳ ສັ່ງ apt-get ໃນ 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
ຫຼັງຈາກນັ້ນຕື່ມ, –with-libdir =/lib/x86_64-linux-gnu ໃສ່ຕົວເລືອກການຕັ້ງຄ່າ, ແລະສ້າງ symlink ຕໍ່ໄປນີ້ໃສ່ແຟ້ມ gmp.h header:
# ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h
ຫຼັງຈາກນັ້ນ, ran ເຮັດແລະຕິດຕັ້ງຄືກັນກັບໃນກໍລະນີທີ່ຜ່ານມາ. ພາຍໃນເວລາ 10-15 ນາທີການລວບລວມຂໍ້ມູນຄວນໄດ້ເຮັດ ສຳ ເລັດແລ້ວແລະພວກເຮົາສາມາດກວດສອບເວີຊັນ PHP ທີ່ຕິດຕັ້ງມາກ່ອນຄື:
# make # make install
ການຕັ້ງຄ່າ php.ini ແລະການທົດສອບການຕິດຕັ້ງ PHP 7
ເມື່ອທ່ານຕິດຕັ້ງ PHP ຈາກແຫຼ່ງຂໍ້ມູນ, php.ini ສອງຕົວຢ່າງແມ່ນໃຫ້. ໃນກໍລະນີນີ້, ພວກມັນຕັ້ງຢູ່ພາຍໃນ /opt/php-7.0.0RC1:
# ls -l /opt/php-7.0.0RC1 | grep php.ini
ດຽວນີ້ທ່ານ ຈຳ ເປັນຕ້ອງເຮັດ ສຳ ເນົາ ໜຶ່ງ ຂອງມັນໄປທີ່/usr/local/lib, ເຊິ່ງຖືກ ກຳ ນົດວ່າເປັນສະຖານທີ່ເລີ່ມຕົ້ນ ສຳ ລັບເອກະສານດັ່ງກ່າວຕາມປື້ມບັນທຶກການຕິດຕັ້ງ:
# cp /opt/php-7.0.0RC1/php.ini-development /usr/local/lib
ແລະຢ່າລືມເພີ່ມ ຄຳ ສັ່ງການຕັ້ງຄ່ານີ້ໃສ່ໃນເອກະສານການຕັ້ງຄ່າຕົ້ນຕໍຂອງ 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>
ໃນ Debian 8 ທ່ານສາມາດຍົກເລີກເສັ້ນ LoadModule ແລະທ່ານກໍ່ ຈຳ ເປັນຕ້ອງເອົາແລະສ້າງລິ້ງສັນຍາລັກຕໍ່ໄປນີ້ກັບໂມດູນ Apache ທີ່ລະບຸໄວ້:
# 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
ຫຼັງຈາກນັ້ນ, ເລີ່ມຕົ້ນ ໃໝ່ server web:
# systemctl restart httpd [On CentOS 7 box] # systemctl restart apache2 [On Debian 8 box]
ຖ້າການເລີ່ມຕົ້ນ Apache ໃນ CentOS 7 ສົ່ງຂໍ້ຄວາມຜິດພາດໂດຍກ່າວວ່າມັນບໍ່ສາມາດຊອກຫາໂມດູນ libphp7.so, ພຽງແຕ່ຄັດລອກໄປທີ່ເສັ້ນທາງທີ່ບົ່ງໄວ້ຈາກ /opt/php-7.0.0RC1/.libs/libphp7.so.
ວິທີການແບບເກົ່າເພື່ອທົດສອບການຕິດຕັ້ງ PHP/Apache ແມ່ນການໃຊ້ແຟ້ມ phpinfo()
. ສ້າງແຟ້ມເອກະສານທີ່ມີຊື່ວ່າ test.php ດ້ວຍເນື້ອໃນຕໍ່ໄປນີ້ໃນຮາກເອກະສານຂອງເຊີຟເວີເວັບ (/ var/www/html ໃນການແຈກຢາຍທັງສອງ):
<?php phpinfo(); ?>
ແລະເປີດຕົວທ່ອງເວັບໃນລູກຄ້າພາຍໃນເຄືອຂ່າຍຂອງທ່ານເພື່ອທົດສອບ:
http://localhost/test.php OR http://IP-address/test.php
ບົດສະຫຼຸບ
ໃນບົດຂຽນນີ້ພວກເຮົາໄດ້ອະທິບາຍວິທີການຕິດຕັ້ງ PHP 7 ຈາກລະຫັດແຫຼ່ງ, RC ໃໝ່ ສຸດຂອງພາສາທີ່ໃຊ້ໃນການ ນຳ ໃຊ້ server ທີ່ມີຄວາມນິຍົມສູງນີ້ເພື່ອແນໃສ່ປັບປຸງການປະຕິບັດງານໃນມູນຄ່າທີ່ບໍ່ເຄີຍມີມາກ່ອນ. ຈົນກ່ວາມັນຈະຮອດສະຖຽນລະພາບໃນເດືອນພະຈິກຂອງປີ 2015 ນີ້, ທ່ານໄດ້ຖືກແນະ ນຳ ໃຫ້ຢ່າໃຊ້ການປ່ອຍລຸ້ນນີ້ໃນສະພາບແວດລ້ອມການຜະລິດ.
ຖ້າທ່ານມີ ຄຳ ຖາມ/ຄຳ ເຫັນ/ຄຳ ແນະ ນຳ ໃດໆກ່ຽວກັບບົດຂຽນນີ້, ກະລຸນາແຈ້ງໃຫ້ພວກເຮົາຊາບໂດຍ ນຳ ໃຊ້ແບບຟອມລຸ່ມນີ້.