摘要:編譯安裝復(fù)制擴(kuò)展文件到擴(kuò)展目錄若已經(jīng)自動(dòng)復(fù)制,則忽略在中開(kāi)啟擴(kuò)展,配置相應(yīng)的擴(kuò)展參數(shù)安裝擴(kuò)展實(shí)例查看已安裝的擴(kuò)展從下載擴(kuò)展,并解壓縮正在解析主機(jī)正在連接已連接。
一、編譯安裝PHP 1. 下載源碼包并解壓 源碼包地址:http://php.net/downloads.php 下載源碼包
當(dāng)前PHP最新本門是7.2.9,下載 php-7.2.9 源碼包
wget http://be2.php.net/get/php-7.2.9.tar.gz/from/this/mirror -O php-7.2.9.tar.gz解壓源碼包
解壓縮
tar zxf php-7.2.9.tar.gz
進(jìn)入解壓縮后的目錄,查看解壓的文件
[root/usr/local/src/php-7.2.9]# ll 總用量 4.1M -rw-rw-r-- 1 root root 84K 8月 14 14:26 acinclude.m4 -rw-r--r-- 1 root root 309K 8月 14 14:26 aclocal.m4 drwxrwxr-x 2 root root 78 8月 14 14:26 appveyor/ -rw-rw-r-- 1 root root 1.4K 8月 14 14:26 .appveyor.yml drwxrwxr-x 2 root root 4.0K 8月 14 14:26 build/ -rwxrwxr-x 1 root root 772 8月 14 14:26 buildconf* -rw-rw-r-- 1 root root 334 8月 14 14:26 buildconf.bat -rw-rw-r-- 1 root root 12K 8月 14 14:26 CODING_STANDARDS -rw-rw-r-- 1 root root 42K 8月 14 14:26 config.guess -rw-rw-r-- 1 root root 36K 8月 14 14:26 config.sub -rwxr-xr-x 1 root root 2.6M 8月 14 14:26 configure* -rw-rw-r-- 1 root root 46K 8月 14 14:26 configure.ac -rw-rw-r-- 1 root root 3.4K 8月 14 14:26 CONTRIBUTING.md -rw-rw-r-- 1 root root 91 8月 14 14:26 CREDITS -rw-rw-r-- 1 root root 867 8月 14 14:26 .editorconfig drwxrwxr-x 76 root root 4.0K 8月 14 14:26 ext/ -rw-rw-r-- 1 root root 21K 8月 14 14:26 EXTENSIONS -rw-rw-r-- 1 root root 137 8月 14 14:26 footer -rw-rw-r-- 1 root root 13K 8月 14 14:26 .gdbinit -rw-r--r-- 1 root root 1.8K 8月 14 14:26 generated_lists -rwxrwxr-x 1 root root 581 8月 14 14:26 genfiles* -rw-rw-r-- 1 root root 8.7K 8月 14 14:26 .gitattributes -rw-rw-r-- 1 root root 4.3K 8月 14 14:26 .gitignore -rw-rw-r-- 1 root root 1.2K 8月 14 14:26 header -rw-rw-r-- 1 root root 86K 8月 14 14:26 INSTALL -rw-r--r-- 1 root root 0 8月 14 14:26 install-sh -rw-rw-r-- 1 root root 3.2K 8月 14 14:26 LICENSE -rw-rw-r-- 1 root root 196K 8月 14 14:26 ltmain.sh drwxrwxr-x 3 root root 4.0K 8月 14 14:26 main/ -rwxrwxr-x 1 root root 4.1K 8月 14 14:26 makedist* -rw-rw-r-- 1 root root 1.1K 8月 14 14:26 Makefile.frag -rw-rw-r-- 1 root root 2.5K 8月 14 14:26 Makefile.gcov -rw-rw-r-- 1 root root 7.0K 8月 14 14:26 Makefile.global -rw-r--r-- 1 root root 0 8月 14 14:26 missing -rw-r--r-- 1 root root 0 8月 14 14:26 mkinstalldirs -rw-rw-r-- 1 root root 90K 8月 14 14:26 NEWS drwxrwxr-x 2 root root 96 8月 14 14:26 pear/ -rw-rw-r-- 1 root root 1.5K 8月 14 14:26 php7.spec.in -rw-rw-r-- 1 root root 2.5K 8月 14 14:26 php.gif -rw-rw-r-- 1 root root 69K 8月 14 14:26 php.ini-development -rw-rw-r-- 1 root root 69K 8月 14 14:26 php.ini-production -rw-rw-r-- 1 root root 6.9K 8月 14 14:26 README.EXT_SKEL -rw-rw-r-- 1 root root 5.0K 8月 14 14:26 README.GIT-RULES -rw-rw-r-- 1 root root 5.3K 8月 14 14:26 README.input_filter -rw-rw-r-- 1 root root 3.4K 8月 14 14:26 README.MAILINGLIST_RULES -rw-rw-r-- 1 root root 1.6K 8月 14 14:26 README.md -rw-rw-r-- 1 root root 5.2K 8月 14 14:26 README.NEW-OUTPUT-API -rw-rw-r-- 1 root root 7.4K 8月 14 14:26 README.PARAMETER_PARSING_API -rw-rw-r-- 1 root root 20K 8月 14 14:26 README.REDIST.BINS -rw-rw-r-- 1 root root 15K 8月 14 14:26 README.RELEASE_PROCESS -rw-rw-r-- 1 root root 5.0K 8月 14 14:26 README.SELF-CONTAINED-EXTENSIONS -rw-rw-r-- 1 root root 15K 8月 14 14:26 README.STREAMS -rw-rw-r-- 1 root root 8.0K 8月 14 14:26 README.SUBMITTING_PATCH -rw-rw-r-- 1 root root 6.6K 8月 14 14:26 README.TESTING -rw-rw-r-- 1 root root 4.9K 8月 14 14:26 README.TESTING2 -rw-rw-r-- 1 root root 4.2K 8月 14 14:26 README.UNIX-BUILD-SYSTEM -rw-rw-r-- 1 root root 115 8月 14 14:26 README.WIN32-BUILD-SYSTEM -rwxrwxr-x 1 root root 84K 8月 14 14:26 run-tests.php* drwxrwxr-x 10 root root 110 8月 14 14:26 sapi/ drwxrwxr-x 4 root root 99 8月 14 14:26 scripts/ -rwxrwxr-x 1 root root 2.1K 8月 14 14:26 server-tests-config.php* -rwxrwxr-x 1 root root 52K 8月 14 14:26 server-tests.php* -rwxrwxr-x 1 root root 108 8月 14 14:26 snapshot* -rw-rw-r-- 1 root root 10 8月 14 14:26 stamp-h.in drwxrwxr-x 10 root root 133 8月 14 14:26 tests/ drwxrwxr-x 3 root root 33 8月 14 14:26 travis/ -rw-rw-r-- 1 root root 1.9K 8月 14 14:26 .travis.yml drwxrwxr-x 3 root root 4.0K 8月 14 14:26 TSRM/ -rw-rw-r-- 1 root root 15K 8月 14 14:26 UPGRADING -rw-rw-r-- 1 root root 3.3K 8月 14 14:26 UPGRADING.INTERNALS -rwxrwxr-x 1 root root 159 8月 14 14:26 vcsclean* drwxrwxr-x 3 root root 4.0K 8月 14 14:26 win32/ drwxrwxr-x 3 root root 8.0K 8月 14 14:26 Zend/2. 編譯安裝 首先安裝PHP編譯安裝所必須的軟件
[root/usr/local/src/php-7.2.9]# yum -y install gcc gcc++ libxml2-devel libicu-develconfigure指定安裝目錄,啟用fpm
[root/usr/local/src/php-7.2.9]# ./configure --prefix=/usr/local/php7 --enable-fpm編譯安裝
[root/usr/local/src/php-7.2.9]# make && make install ...省略... Installing shared extensions: /usr/local/php7/lib/php/extensions/no-debug-non-zts-20170718/ Installing PHP CLI binary: /usr/local/php7/bin/ Installing PHP CLI man page: /usr/local/php7/php/man/man1/ Installing PHP FPM binary: /usr/local/php7/sbin/ Installing PHP FPM defconfig: /usr/local/php7/etc/ Installing PHP FPM man page: /usr/local/php7/php/man/man8/ Installing PHP FPM status page: /usr/local/php7/php/php/fpm/ Installing phpdbg binary: /usr/local/php7/bin/ Installing phpdbg man page: /usr/local/php7/php/man/man1/ Installing PHP CGI binary: /usr/local/php7/bin/ Installing PHP CGI man page: /usr/local/php7/php/man/man1/ Installing build environment: /usr/local/php7/lib/php/build/ Installing header files: /usr/local/php7/include/php/ Installing helper programs: /usr/local/php7/bin/ program: phpize program: php-config Installing man pages: /usr/local/php7/php/man/man1/ page: phpize.1 page: php-config.1 Installing PEAR environment: /usr/local/php7/lib/php/ [PEAR] Archive_Tar - installed: 1.4.3 [PEAR] Console_Getopt - installed: 1.4.1 [PEAR] Structures_Graph- installed: 1.1.1 [PEAR] XML_Util - installed: 1.4.2 [PEAR] PEAR - installed: 1.10.5 Warning! a PEAR user config file already exists from a previous PEAR installation at "/root/.pearrc". You may probably want to remove it. Wrote PEAR system config file at: /usr/local/php7/etc/pear.conf You may want to add: /usr/local/php7/lib/php to your php.ini include_path /usr/local/src/php-7.2.9/build/shtool install -c ext/phar/phar.phar /usr/local/php7/bin ln -s -f phar.phar /usr/local/php7/bin/phar Installing PDO headers: /usr/local/php7/include/php/ext/pdo/3. 為php命令建立軟鏈接,加入到環(huán)境變量中
[root/usr/local/src/php-7.2.9]# ln -s /usr/local/php7/bin/php /usr/local/bin/php4. 創(chuàng)建配置文件,并將其復(fù)制到正確的位置 查看PHP基本信息
[root/usr/local/src/php-7.2.9]# php -ini phpinfo() PHP Version => 7.2.9 System => Linux 10.0.2.15 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 Build Date => Aug 17 2018 09:09:29 Configure Command => "./configure" "--prefix=/usr/local/php7" "--enable-fpm" Server API => Command Line Interface Virtual Directory Support => disabled Configuration File (php.ini) Path => /usr/local/php7/lib Loaded Configuration File => (none) Scan this dir for additional .ini files => (none) Additional .ini files parsed => (none) PHP API => 20170718 PHP Extension => 20170718 Zend Extension => 320170718 Zend Extension Build => API320170718,NTS PHP Extension Build => API20170718,NTS ......將php.ini復(fù)制到 Configuration File (php.ini) Path
[root/usr/local/src/php-7.2.9]# cp php.ini-development /usr/local/php7/lib/php.ini5. 配置php-fpm 為php-fpm命令建立軟鏈接,加入到環(huán)境變量中
[root/usr/local/src/php-7.2.9]$ ln -s /usr/local/php7/sbin/php-fpm /usr/local/sbin/php-fpm復(fù)制php配置文件目錄下的 php-fpm.conf.default,并重命名為 php-fpm.conf
[root/usr/local/src/php-7.2.9]# cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf復(fù)制php配置文件目錄下的 php-fpm.d/www.conf.default,并重命名為 php-fpm.d/www.conf
[root/usr/local/src/php-7.2.9]# cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf編輯 php-fpm.d/www.conf,設(shè)置 php-fpm 模塊使用 www-data 用戶和 www-data 用戶組的身份運(yùn)行。
vim /usr/local/php7/etc/php-fpm.d/www.conf user = www-data group = www-data需要著重提醒的是,如果文件不存在,則阻止 Nginx 將請(qǐng)求發(fā)送到后端的 PHP-FPM 模塊, 以避免遭受惡意腳本注入的攻擊
編輯 php.ini,文件中的配置項(xiàng) cgi.fix_pathinfo 設(shè)置為 0 。
[root/usr/local/src/php-7.2.9]# vim /usr/local/php7/lib/php.ini cgi.fix_pathinfo=0啟動(dòng)php-fpm
[root/usr/local/src/php-7.2.9]# php-fpm [root/usr/local/src/php-7.2.9]# ss -tlnp | grep php-fpm LISTEN 0 128 127.0.0.1:9000 *:* users:(("php-fpm",pid=4689,fd=5),("php-fpm",pid=4688,fd=5),("php-fpm",pid=4687,fd=7))6. 配置 Nginx 使其支持 PHP 應(yīng)用
[root/etc/nginx]# vim conf.d/default.conf server { listen 80; root /vagrant; location / { index index.php; } location ~* .php$ { fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; } }創(chuàng)建 /vagrant/index.php,并填入 ="Hello world!";
[root/etc/nginx]# echo "="Hello world!";" > /vagrant/index.php [root/etc/nginx]# cat /vagrant/index.php ="Hello world!";啟動(dòng)nginx
[root/etc/nginx]# nginx [root/etc/nginx]# ss -tlnp | grep nginx LISTEN 0 128 *:80 *:* users:(("nginx",pid=4725,fd=6),("nginx",pid=4724,fd=6))7. 訪問(wèn) curl localhost,輸出 Hello world!,說(shuō)明PHP + Nginx安裝成功
[root/etc/nginx]# curl localhost Hello world!二、編譯安裝PHP擴(kuò)展 1. php擴(kuò)展安裝流程 從 pecl.php.net 查找需要的擴(kuò)展 選擇擴(kuò)展的版本(注意查看擴(kuò)展版本與PHP版本的兼容性) 解壓縮下載的文件 判斷文件的安裝類型
> 直裝:(解壓出來(lái)就是 .so 文件),直接復(fù)制文件到擴(kuò)展目錄,在php.ini中開(kāi)啟相應(yīng)的擴(kuò)展即可 > 編譯安裝:需要先進(jìn)行編譯,再?gòu)?fù)制文件到擴(kuò)展目錄,在php.ini中開(kāi)啟相應(yīng)的擴(kuò)展2. 編譯安裝步驟 在解壓縮的擴(kuò)展目錄下執(zhí)行phpize
若 phpize 沒(méi)有加入到環(huán)境變量,則需要使用絕對(duì)路徑。例如 /usr/local/php7/bin/phpize。
phpize是用來(lái)擴(kuò)展php擴(kuò)展模塊的。
通過(guò)phpize可以建立php的外掛模塊。
configure 配置編譯參數(shù)
主要是配置php配置文件參數(shù),例如:
./configure --with-php-config=/usr/local/php7/bin/php-config
若配置編譯參數(shù)執(zhí)行過(guò)程中出現(xiàn)錯(cuò)誤,則需要安裝 autoconf。
autoconf可以自動(dòng)地配置軟件源代碼。
contos/redhat:yum install autoconf
ubuntu:apt-get install autoconf
make && make install復(fù)制 .so 擴(kuò)展文件到PHP擴(kuò)展目錄(若已經(jīng)自動(dòng)復(fù)制,則忽略) 在php.ini中開(kāi)啟擴(kuò)展,配置相應(yīng)的擴(kuò)展參數(shù) 3. 安裝redis擴(kuò)展實(shí)例 php -m查看已安裝的php擴(kuò)展
[root/usr/local/src/php-7.2.9]# php -m [PHP Modules] Core ctype date dom fileinfo filter hash iconv json libxml pcre PDO pdo_sqlite Phar posix Reflection session SimpleXML SPL sqlite3 standard tokenizer xml xmlreader xmlwriter [Zend Modules]從 pecl.php.net 下載 redis-4.1.1 擴(kuò)展,并解壓縮
[root/usr/local/src]# wget https://pecl.php.net/get/redis-4.1.1.tgz --2018-08-17 10:00:41-- https://pecl.php.net/get/redis-4.1.1.tgz 正在解析主機(jī) pecl.php.net (pecl.php.net)... 104.236.228.160 正在連接 pecl.php.net (pecl.php.net)|104.236.228.160|:443... 已連接。 已發(fā)出 HTTP 請(qǐng)求,正在等待回應(yīng)... 200 OK 長(zhǎng)度:220894 (216K) [application/octet-stream] 正在保存至: “redis-4.1.1.tgz” 100%[=========================================================================================================================================================================>] 220,894 192KB/s 用時(shí) 1.1s 2018-08-17 10:00:44 (192 KB/s) - 已保存 “redis-4.1.1.tgz” [220894/220894]) [root/usr/local/src]# tar zxf redis-4.1.1.tgz [root/usr/local/src]# cd redis-4.1.1在解壓縮的擴(kuò)展目錄下執(zhí)行phpize
[root/usr/local/src/redis-4.1.1]# /usr/local/php7/bin/phpize Configuring for: PHP Api Version: 20170718 Zend Module Api No: 20170718 Zend Extension Api No: 320170718configure 配置編譯參數(shù)
[root/usr/local/src/redis-4.1.1]# ./configure --with-php-config=/usr/local/php7/bin/php-config編譯安裝
[root/usr/local/src/redis-4.1.1]# make && make install查看編譯好的擴(kuò)展文件 redis.so,已經(jīng)自動(dòng)復(fù)制到php擴(kuò)展目錄下
[root/usr/local/src/redis-4.1.1]# ll /usr/local/php7/lib/php/extensions/no-debug-non-zts-20170718/ 總用量 7.1M -rwxr-xr-x 1 root root 3.5M 8月 17 09:15 opcache.a* -rwxr-xr-x 1 root root 1.9M 8月 17 09:15 opcache.so* -rwxr-xr-x 1 root root 1.8M 8月 17 10:06 redis.so*編輯 php.ini,添加 extension=redis
[root/usr/local/src/redis-4.1.1]# vim /usr/local/php7/lib/php.ini extension=redis此時(shí)再使用php -m查看已安裝的php擴(kuò)展,redis已經(jīng)在擴(kuò)展列表中
[root/usr/local/src/redis-4.1.1]# php -m [PHP Modules] Core ctype date dom fileinfo filter hash iconv json libxml pcre PDO pdo_sqlite Phar posix redis Reflection session SimpleXML SPL sqlite3 standard tokenizer xml xmlreader xmlwriter [Zend Modules]3. 安裝xdebug擴(kuò)展實(shí)例 從 pecl.php.net 下載 xdebug-2.6.1 擴(kuò)展,并解壓縮
[root/usr/local/src]# wget https://pecl.php.net/get/xdebug-2.6.1.tgz [root/usr/local/src]# tar zxf xdebug-2.6.1.tgz [root/usr/local/src]# cd xdebug-2.6.1在解壓縮的擴(kuò)展目錄下執(zhí)行phpize
[root/usr/local/src/xdebug-2.6.1]# /usr/local/php7/bin/phpize Configuring for: PHP Api Version: 20170718 Zend Module Api No: 20170718 Zend Extension Api No: 320170718configure 配置編譯參數(shù)
[root/usr/local/src/xdebug-2.6.1]# ./configure --with-php-config=/usr/local/php7/bin/php-config編譯安裝
[root/usr/local/src/xdebug-2.6.1]# make && make install查看編譯好的擴(kuò)展文件 redis.so,已經(jīng)自動(dòng)復(fù)制到php擴(kuò)展目錄下
[root/usr/local/src/xdebug-2.6.1]# ll /usr/local/php7/lib/php/extensions/no-debug-non-zts-20170718/ 總用量 8.4M -rwxr-xr-x 1 root root 3.5M 8月 17 09:15 opcache.a* -rwxr-xr-x 1 root root 1.9M 8月 17 09:15 opcache.so* -rwxr-xr-x 1 root root 1.8M 8月 17 10:06 redis.so* -rwxr-xr-x 1 root root 1.3M 8月 17 11:16 xdebug.so*編輯 php.ini,添加 zend_extension=xdebug
[root/usr/local/src/xdebug-2.6.1]# vim /usr/local/php7/lib/php.ini zend_extension=xdebug此時(shí)再使用php -m查看已安裝的php擴(kuò)展,xdebug已經(jīng)在擴(kuò)展列表中
[root/usr/local/src/xdebug-2.6.1]# php -m [PHP Modules] Core ctype date dom fileinfo filter hash iconv json libxml pcre PDO pdo_sqlite Phar posix redis Reflection session SimpleXML SPL sqlite3 standard tokenizer xdebug xml xmlreader xmlwriter [Zend Modules] Xdebug
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/40083.html
摘要:最近手里有個(gè)項(xiàng)目需要用用緩存,權(quán)衡之下選擇,沒(méi)想到這里面水還挺深。說(shuō)明是獨(dú)立于語(yǔ)言的,如果用操作的話,自然要安裝擴(kuò)展,但是在環(huán)境下和自己配置的環(huán)境是不一樣的,里面源碼是殘缺的,具體原因我也沒(méi)查,所以需要自己下載源碼編譯。 最近手里有個(gè)項(xiàng)目需要用用緩存,權(quán)衡之下選擇redis,沒(méi)想到這里面水還挺深。 說(shuō)明 Redis是獨(dú)立于語(yǔ)言的,如果用PHP操作的話,自然要安裝PHP Redis擴(kuò)展,...
摘要:編譯安裝復(fù)制擴(kuò)展文件到擴(kuò)展目錄若已經(jīng)自動(dòng)復(fù)制,則忽略在中開(kāi)啟擴(kuò)展,配置相應(yīng)的擴(kuò)展參數(shù)安裝擴(kuò)展實(shí)例查看已安裝的擴(kuò)展從下載擴(kuò)展,并解壓縮正在解析主機(jī)正在連接已連接。 一、編譯安裝PHP 1. 下載源碼包并解壓 源碼包地址:http://php.net/downloads.php 下載源碼包 當(dāng)前PHP最新本門是7.2.9,下載 php-7.2.9 源碼包 wget http://be2.p...
閱讀 3228·2021-11-11 16:55
閱讀 2476·2021-10-13 09:39
閱讀 2408·2021-09-13 10:27
閱讀 2162·2019-08-30 15:55
閱讀 3086·2019-08-30 15:54
閱讀 3132·2019-08-29 16:34
閱讀 1826·2019-08-29 12:41
閱讀 1071·2019-08-29 11:33