編譯安裝Centos8下PHP源碼編譯和通過(guò)yum安裝的區(qū)別和以后的選擇其實(shí)這兩種方法各有千秋: yum安裝: 從yum安裝來(lái)說(shuō)吧,yum相當(dāng)于是自動(dòng)化幫你安裝,你不用管軟件的依賴關(guān)系,在yum安裝過(guò)程是幫你把軟件的全部依賴關(guān)系幫你傻瓜式的解決了。而且現(xiàn)在Centos7的服務(wù)啟動(dòng)已經(jīng)換成systemctl命令來(lái)控制了。通過(guò)yum安裝會(huì)幫你自動(dòng)注冊(cè)服務(wù),你可以通過(guò)systemctl start xxx.service啟動(dòng)服務(wù),方便快捷。但是缺點(diǎn)是yum安裝你沒(méi)辦法干預(yù),安裝的目錄也是分散的。你可能要執(zhí)行whereis或者find命令去找yum安裝的路徑。有時(shí)候yum安裝的軟件版本比較低,你不得不去找其他的yum源,或者rpm包。
源碼安裝: 源碼編譯在安裝過(guò)程中可能要解決很多的依賴問(wèn)題,才能裝好一個(gè)軟件。裝好的軟件你還不能通過(guò)systemctl來(lái)啟動(dòng)服務(wù),因?yàn)樵?usr/lib/systemd/system/路徑下并沒(méi)有你的服務(wù)的配置文件,你要自己手寫一個(gè)。但是好處在于你能選擇軟件的版本,自定義安裝目錄,安裝的模塊。更加靈活方便。
LNMP一鍵安裝: LNMP一鍵安裝包是一個(gè)用Linux Shell編寫的可以為CentOS/RHEL/Fedora/Aliyun/Amazon、Debian/Ubuntu/Raspbian/Deepin/Mint Linux VPS或獨(dú)立主機(jī)安裝LNMP(Nginx/MySQL/PHP)、LNMPA(Nginx/MySQL/PHP/Apache)、LAMP(Apache/MySQL/PHP)生產(chǎn)環(huán)境的Shell程序。無(wú)需一個(gè)一個(gè)的輸入命令,無(wú)需值守,編譯安裝優(yōu)化編譯參數(shù),提高性能,解決不必要的軟件間依賴,特別針對(duì)配置自動(dòng)優(yōu)化。支持自定義Nginx、PHP編譯參數(shù)及網(wǎng)站和數(shù)據(jù)庫(kù)目錄、支持生成LetseEcrypt證書、LNMP模式支持多PHP版本、支持單獨(dú)安裝Nginx/MySQL/MariaDB/Pureftpd服務(wù)器,同時(shí)提供一些實(shí)用的輔助工具如:虛擬主機(jī)管理、FTP用戶管理、Nginx、MySQL/MariaDB、PHP的升級(jí)、常用緩存組件Redis/Xcache等的安裝、重置MySQL root密碼、502自動(dòng)重啟、日志切割、SSH防護(hù)DenyHosts/Fail2Ban、備份等許多實(shí)用腳本。
以上三種都是有各自的優(yōu)點(diǎn),建議是初學(xué)者一定要掌握源碼編譯的過(guò)程,手動(dòng)解決安裝過(guò)成中遇到的問(wèn)題,熟悉如何編譯一個(gè)軟件,對(duì)于以后的發(fā)展是很有利的,而且有些軟件沒(méi)辦法通過(guò)yum安裝,這時(shí)候源碼編譯就顯得很重要了。而像PHP這類軟件來(lái)說(shuō),如果是編譯安裝的,如果缺少一個(gè)擴(kuò)展,你就得做phpize, ./configure, make && make install等方式編譯PHP擴(kuò)展,這是很繁瑣的。通過(guò)yum安裝的話,當(dāng)你要增加一個(gè)擴(kuò)展,例如pdo,你就能夠yum search php | grep pdo來(lái)尋找合適的pdo包,然后下載安裝,系統(tǒng)會(huì)自動(dòng)幫你添加到PHP擴(kuò)展列表。省去我們很多工作。LNMP一鍵安裝是為開發(fā)者快速搭建開發(fā)環(huán)境時(shí)使用,可以讓開發(fā)者有更多時(shí)間在開發(fā)的業(yè)務(wù)邏輯上。
1.使用yum命令(學(xué)習(xí)yum的基本知識(shí)) 參考網(wǎng)站: # https://www.jb51.net/article/175918.htm # https://www./php7-3-yum-install-on-centos-7/
這個(gè)方法是比較簡(jiǎn)單的方法,可以很簡(jiǎn)單快速地安裝php。(rpm命令的基本用法和實(shí)例) #添加幾個(gè)源,不然會(huì)報(bào)錯(cuò) #php高版本的yum源地址,有兩部分,其中一部分是epel-release,另外一部分來(lái)自webtatic。如果跳過(guò)epel-release的話,安裝webtatic的時(shí)候 rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-8.rpm
添加相關(guān)的庫(kù)后,啟用 PHP 7.4 的 Remi 模塊并進(jìn)行安裝。 dnf -y install dnf-utils
#使用這個(gè)命令查看php7.4 yum search php74*
然后安裝你想要的模塊: php74:安裝PHP 7.4的包 php74-php:用于創(chuàng)建動(dòng)態(tài)web的PHP腳本語(yǔ)言網(wǎng)站 php74-build:基本的構(gòu)建配置 php74-php-gd:用于PHP應(yīng)用程序使用gd的模塊圖形庫(kù) php74-xhprof:一個(gè)用于PHP - Web接口的層次分析器 php74-zephir:用于創(chuàng)建擴(kuò)展的Zephir語(yǔ)言PHP: php74-php-ast:抽象語(yǔ)法樹 php74-php-cli:用于PHP的命令行接口 php74-php-dba:一個(gè)用于PHP的數(shù)據(jù)庫(kù)抽象層模塊應(yīng)用程序 php74-php-dbg:交互式PHP調(diào)試器 php74-php-ffi:外部函數(shù)接口 php74-php-fpm:PHP FastCGI進(jìn)程管理器 php74-php-gmp:一個(gè)用于使用GNU的PHP應(yīng)用程序模塊議員庫(kù) php74-php-lz4:x86_64: PHP的LZ4擴(kuò)展 php74-php-pdo:一個(gè)用于PHP的數(shù)據(jù)庫(kù)訪問(wèn)抽象模塊應(yīng)用程序 php74-php-xml:x86_64:用于使用XML的PHP應(yīng)用程序的模塊 php74-runtime:處理php74軟件集合的包: php74-php-imap:x86_64:用于使用IMAP的PHP應(yīng)用程序的模塊 php74-php-intl:x86_64: PHP國(guó)際化擴(kuò)展應(yīng)用程序 php74-php-json:x86_64: PHP的JavaScript對(duì)象符號(hào)擴(kuò)展 php74-php-ldap:x86_64:用于使用LDAP的PHP應(yīng)用程序的模塊 php74-php-oci8:x86_64:用于使用OCI8的PHP應(yīng)用程序的模塊數(shù)據(jù)庫(kù) php74-php-odbc:x86_64:用于使用ODBC的PHP應(yīng)用程序的模塊數(shù)據(jù)庫(kù) php74-php-pear:noarch: PHP擴(kuò)展和應(yīng)用程序庫(kù)框架 php74-php-pggi:GTK綁定 php74-php-snmp:一個(gè)用于PHP應(yīng)用程序查詢的模塊SNMP-managed設(shè)備 php74-php-soap:用于使用SOAP的PHP應(yīng)用程序的模塊協(xié)議 php74-php-tidy:標(biāo)準(zhǔn)PHP模塊提供了tidy庫(kù)支持 php74-php-zstd:x86_64: Zstandard擴(kuò)展名 php74-scldevel:x86_64:打包php74的開發(fā)文件 php74-unit-php:用于NGINX單元的PHP模塊 php74-php-devel:構(gòu)建PHP擴(kuò)展所需的文件 php74-php-pgsql:一個(gè)用于PHP的PostgreSQL數(shù)據(jù)庫(kù)模塊 php74-php-pinba:x86_64: Pinba統(tǒng)計(jì)服務(wù)器的客戶端擴(kuò)展 php74-php-bcmath:用于PHP應(yīng)用程序的模塊bcmath庫(kù) php74-php-brotli:用于PHP的Brotli擴(kuò)展 php74-php-common:PHP的公共文件 php74-php-pspell:x86_64:用于PHP應(yīng)用程序的模塊中接口 php74-php-recode:用于PHP應(yīng)用程序的模塊重新編碼庫(kù) php74-php-snappy:PHP的Snappy擴(kuò)展 php74-php-sodium:x86_64:鈉密碼庫(kù)的包裝 php74-php-sqlsrv:x86_64:用于SQL Server的PHP Microsoft驅(qū)動(dòng)程序 php74-php-xmlrpc:的PHP應(yīng)用程序模塊xml - rpc協(xié)議 php74-php-enchant:增強(qiáng)PHP的拼寫擴(kuò)展應(yīng)用程序 php74-php-libvirt:用于Libvirt的PHP語(yǔ)言綁定 php74-php-mysqlnd:x86_64:用于使用MySQL的PHP應(yīng)用程序的模塊數(shù)據(jù)庫(kù) php74-php-opcache:x86_64: Zend OPcache php74-php-pecl-ds:x86_64: PHP的數(shù)據(jù)結(jié)構(gòu) php74-php-pecl-ev:提供libev庫(kù)的接口 php74-php-pecl-pq:PostgreSQL客戶端庫(kù)(libpq)綁定 php74-php-pecl-uv:Libuv包裝器 php74-php-process:用于PHP腳本的模塊使用系統(tǒng)進(jìn)程接口 php74-php-embedded:用于嵌入應(yīng)用程序的PHP庫(kù) php74-php-mbstring:一個(gè)用于PHP應(yīng)用程序的模塊多字節(jié)字符串處理 php74-php-pecl-dio:直接I/O函數(shù) php74-php-pecl-eio:提供libeio庫(kù)的接口 php74-php-pecl-env:加載環(huán)境變量 php74-php-pecl-lua:嵌入式lua解釋器 php74-php-pecl-lzf:x86_64:處理LZF de/壓縮的擴(kuò)展 php74-php-pecl-nsq:NSQ客戶端的PHP擴(kuò)展 php74-php-pecl-psr:PSR接口 php74-php-pecl-rar:用于讀取RAR存檔的PHP擴(kuò)展 php74-php-pecl-rrd:x86_64: rrdtool的PHP綁定 php74-php-pecl-sdl:簡(jiǎn)單的PHP DirectMedia層 php74-php-pecl-svn:x86_64: Subversion版本的PHP綁定控制系統(tǒng) php74-php-pecl-vld:x86_64:轉(zhuǎn)儲(chǔ)PHP的內(nèi)部表示腳本 php74-php-pecl-yac:無(wú)鎖用戶數(shù)據(jù)緩存 php74-php-pecl-yaf:x86_64:又一個(gè)框架 php74-php-pecl-yar:輕量級(jí)并發(fā)RPC框架 php74-php-pecl-yaz:x86_64: Z39.50/SRU客戶端 php74-php-pecl-zip:一個(gè)ZIP文件的擴(kuò)展名 php74-php-pecl-zmq:ZeroMQ消息傳遞 php74-php-phalcon4:Phalcon框架 php74-php-componere:在運(yùn)行時(shí)編寫PHP類 php74-php-litespeed:LiteSpeed Web服務(wù)器PHP支持 php74-php-maxminddb:MaxMind DB Reader擴(kuò)展 php74-php-pdo-dblib:x86_64: PDO驅(qū)動(dòng)程序,用于Microsoft SQL Server和Sybase數(shù)據(jù)庫(kù) php74-php-pecl-amqp:與任何AMQP兼容的服務(wù)器通信 php74-php-pecl-apcu:APC用戶緩存 php74-php-pecl-apfd:總是填充表單數(shù)據(jù) php74-php-pecl-fann:用于FANN庫(kù)的包裝器 php74-php-pecl-grpc:x86_64:通用RPC框架 php74-php-pecl-http:擴(kuò)展的HTTP支持 php74-php-pecl-krb5:Kerberos驗(yàn)證擴(kuò)展 php74-php-pecl-pcov:x86_64:代碼覆蓋驅(qū)動(dòng)程序 php74-php-pecl-ssh2:x86_64: libssh2庫(kù)的綁定 php74-php-pecl-sync:已命名和未命名同步對(duì)象 php74-php-pecl-uopz:x86_64: Zend的用戶操作 php74-php-pecl-uuid:通用唯一標(biāo)識(shí)符擴(kuò)展對(duì)于PHP php74-php-pecl-vips:x86_64:與libvip接口的PHP擴(kuò)展 php74-php-pecl-wddx:Web分布式數(shù)據(jù)交換 php74-php-pecl-yaml:x86_64: yaml的PHP綁定 php74-php-phpiredis:x86_64: Redis的客戶端擴(kuò)展名 php74-php-smbclient:libsmbclient的PHP包裝 php74-php-wkhtmltox:HTML轉(zhuǎn)換器 php74-php-pecl-cmark:CommonMark擴(kuò)展名 php74-php-pecl-dbase:dBase數(shù)據(jù)庫(kù)文件訪問(wèn)函數(shù) php74-php-pecl-druid:一個(gè)PHP的德魯伊驅(qū)動(dòng) php74-php-pecl-event:提供libevent庫(kù)的接口 php74-php-pecl-geoip:將IP地址映射到的擴(kuò)展名地理位置 php74-php-pecl-gnupg:x86_64: gpgme庫(kù)的包裝 php74-php-pecl-mysql:MySQL數(shù)據(jù)庫(kù)訪問(wèn)函數(shù) php74-php-pecl-oauth:PHP OAuth消費(fèi)者擴(kuò)展 php74-php-pecl-parle:x86_64:解析和詞法分析 php74-php-pecl-raphf:資源和持久句柄工廠 php74-php-pecl-solr2:Apache Solr的API定向?qū)ο?php74-php-pecl-stats:用于統(tǒng)計(jì)計(jì)算的例程 php74-php-pecl-stomp:Stomp客戶端擴(kuò)展 php74-php-pecl-taint:x86_64: XSS代碼嗅探器 php74-php-pecl-xattr:擴(kuò)展屬性 php74-php-pecl-xdiff:文件差異/補(bǔ)丁 php74-php-pecl-xxtea:XXTEA加密算法擴(kuò)展PHP php74-php-libvirt-doc:noarch: php-libvirt文件 php74-php-pecl-base58:用base58編碼和解碼數(shù)據(jù) php74-php-pecl-bitset:位集庫(kù) php74-php-pecl-crypto:OpenSSL密碼庫(kù)的包裝器 php74-php-pecl-gender:x86_64:性別擴(kuò)展 php74-php-pecl-hprose:用于PHP的h散文 php74-php-pecl-hrtime:x86_64:高分辨率定時(shí) php74-php-pecl-mcrypt:x86_64: libmcrypt庫(kù)的綁定 php74-php-pecl-pdflib:生成PDF文件的包 php74-php-pecl-propro:屬性代理 php74-php-pecl-radius:Radius客戶端庫(kù) php74-php-pecl-redis4:的擴(kuò)展名 Redis鍵值存儲(chǔ) php74-php-pecl-redis5:的擴(kuò)展名 Redis鍵值存儲(chǔ) php74-php-pecl-scrypt:Scrypt散列函數(shù) php74-php-pecl-sphinx:Sphinx SQL全文的PECL擴(kuò)展搜索引擎 php74-php-pecl-ssdeep:libfuzzy庫(kù)的包裝器 php74-php-pecl-trader:為貿(mào)易商提供技術(shù)分析 php74-php-pecl-xdebug:用于調(diào)試PHP腳本的PECL包 php74-php-pecl-xhprof:x86_64: XHProf的PHP擴(kuò)展,層次結(jié)構(gòu)分析器 php74-php-pecl-yaconf:x86_64:另一個(gè)配置容器 php74-php-pecl-apcu-bc:APCu向后兼容模塊 php74-php-pecl-decimal:任意精度浮點(diǎn)小數(shù) php74-php-pecl-gearman:PHP包裝器到libgearman php74-php-pecl-gmagick:的包裝器GraphicsMagick庫(kù) php74-php-pecl-imagick:x86_64:用于創(chuàng)建和修改映像的擴(kuò)展使用ImageMagick php74-php-pecl-inotify:x86_64: Inotify php74-php-pecl-leveldb:LevelDB PHP綁定 php74-php-pecl-memprof:x86_64:內(nèi)存使用分析器 php74-php-pecl-mongodb:x86_64:用于PHP的MongoDB驅(qū)動(dòng)程序 php74-php-pecl-msgpack:用于與MessagePack通信的API序列化 php74-php-pecl-rdkafka:基于librdkafka的Kafka客戶端 php74-php-pecl-rpminfo:x86_64: RPM信息 php74-php-pecl-runkit7:為了這些你…不應(yīng)該…無(wú)論如何我一直在做……但是肯定做的! php74-php-pecl-seaslog:一個(gè)有效、快速、穩(wěn)定的日志 PHP擴(kuò)展 php74-php-pecl-selinux:用于PHP腳本的SELinux綁定語(yǔ)言 php74-php-pecl-swoole4:PHP的異步并發(fā)分布式網(wǎng)絡(luò)框架 php74-php-pecl-timecop:x86_64:時(shí)間旅行和凍結(jié)擴(kuò)展 php74-php-pecl-varnish:Varnish緩存綁定 php74-php-pecl-xmldiff:x86_64: XML差異和合并 php74-php-pecl-igbinary:x86_64:替代標(biāo)準(zhǔn)PHP序列化器 php74-php-pecl-memcache:x86_64:使用Memcached的擴(kuò)展緩存守護(hù)進(jìn)程 php74-php-pecl-mogilefs:要與之通信的PHP客戶端庫(kù) MogileFS存儲(chǔ) php74-php-pecl-mustache:Mustache模板語(yǔ)言 php74-php-pecl-protobuf:序列化結(jié)構(gòu)化的機(jī)制數(shù)據(jù) php74-php-pecl-rdkafka4:基于librdkafka的Kafka客戶端 php74-php-pecl-scoutapm:本地?cái)U(kuò)展組件 ScoutAPM的PHP代理 php74-php-pecl-translit:將非拉丁字符音譯設(shè)置為拉丁文 php74-php-snuffleupagus:x86_64: PHP的安全模塊 php74-php-zephir-parser:x86_64: Zephir解析器擴(kuò)展 php74-php-pecl-cassandra:用于Apache的DataStax PHP驅(qū)動(dòng)程序卡桑德拉 php74-php-pecl-json-post:JSON POST處理程序 php74-php-pecl-mailparse:用于解析和的PHP PECL包處理電子郵件消息 php74-php-pecl-memcached:x86_64:使用Memcached的擴(kuò)展緩存守護(hù)進(jìn)程 php74-php-pecl-mosquitto:libmosquito - to的擴(kuò)展 php74-php-pecl-seasclick:一個(gè)Yandex ClickHouse客戶端驅(qū)動(dòng) PHP擴(kuò)展 php74-php-pecl-xlswriter:一個(gè)高效、快速的xlsx文件出口擴(kuò)展 php74-php-horde-horde-lz4:Horde LZ4壓縮擴(kuò)展 php74-php-pecl-apcu-devel:APCu開發(fā)人員文件(頭文件) php74-php-pecl-couchbase2:Couchbase服務(wù)器PHP擴(kuò)展 php74-php-pecl-geospatial:PHP擴(kuò)展來(lái)處理公共地理空間功能 php74-php-pecl-handlebars:Handlebars模板語(yǔ)言 php74-php-pecl-http-devel:x86_64:擴(kuò)展HTTP支持開發(fā)人員文件(頭) php74-php-pecl-krb5-devel:Kerberos擴(kuò)展開發(fā)人員文件(頭) php74-php-pecl-luasandbox:帶有限制和安全的Lua解釋器環(huán)境 php74-php-pecl-opencensus:一個(gè)stats集合和分布式跟蹤框架 php74-php-pecl-skywalking:x86_64: Apache的PHP工具代理人行天橋 php74-php-pecl-ahocorasick:有效的Aho-Corasick字符串模式匹配算法 php74-php-pecl-ip2location:獲取an的地理位置信息IP地址 php74-php-pecl-http-message:x86_64: PSR-7 HTTP消息實(shí)現(xiàn) php74-php-pecl-datadog-trace:APM和分布式跟蹤PHP php74-php-pecl-hdr-histogram:x86_64: C語(yǔ)言的PHP擴(kuò)展包裝hdrhistogram API php74-php-pecl-imagick-devel:imagick擴(kuò)展開發(fā)人員文件(頭) php74-php-pecl-msgpack-devel:MessagePack開發(fā)人員文件(頭) php74-php-pecl-mysql-xdevapi:MySQL數(shù)據(jù)庫(kù)訪問(wèn)函數(shù) php74-php-pecl-mysqlnd-azure:x86_64: mysqlnd的重定向插件 php74-php-pecl-igbinary-devel:Igbinary開發(fā)人員文件(頭) php74-php-pecl-uploadprogress:x86_64:跟蹤進(jìn)度的擴(kuò)展文件上傳
# 運(yùn)行一下 yum install php74-php
使用如下命令安裝額外的包 yum search php74*
yum install php74-xxx
運(yùn)行并查看版本, 重啟命令, 添加自動(dòng)啟動(dòng),鏈接php文件 #運(yùn)行并查看版本
一些配置文件的路徑 # The current PHP memory limit is below the recommended value of 512MB. vi /etc/opt/remi/php74/php.ini memory_limit = 512M #如果你運(yùn)行的是nginx而不是apache,修改 vi /etc/opt/remi/php74/php-fpm.d/www.conf user = apache group = apache # Replace the values with user = nginx group = nginx
卸載所有php7.4 yum remove php74-php*
2.編譯安裝PHP以及需要的基本擴(kuò)展庫(kù)(php7.4)參考網(wǎng)站: https://www./manual/zh/install.php https://www.cnblogs.com/werben/p/11833903.html https://www.cnblogs.com/ckh2014/p/10909672.html 下載php源碼用php的官網(wǎng),有很多源的,想要什么版本可以自己選一下 https://www./distributions/php-7.4.2.tar.bz2 #回到用戶目錄 cd ~ #下載php7.4源碼 wget https://www./distributions/php-7.4.2.tar.bz2 下載完成 # 把它移動(dòng)到usr/local文件下操作,我個(gè)人習(xí)慣 mv php-7.4.2.tar.bz2 /usr/local/php-7.4.2.tar.bz2 安裝編譯工具和庫(kù)安裝php的依賴庫(kù)和安裝編譯的工具,無(wú)論有沒(méi)有裝都可以執(zhí)行一下 yum -y install gcc gcc-c++
yum -y install libxml2-devel openssl-devel curl-devel libjpeg-devel libpng-devel libicu-devel freetype-devel openldap-devel openldap openldap-devel
創(chuàng)建用戶組和用戶 groupadd www
useradd -g www www
php ./configure的一些參數(shù)及意義PHP編譯參數(shù)的含義 ./configure –prefix=/usr/local/php php安裝目錄 –with-apxs2=/usr/local/apache/bin/apxs –with-config-file-path=/usr/local/php/etc 指定php.ini位置 –with-MySQL=/usr/local/mysql mysql安裝目錄,對(duì)mysql的支持 –with-mysqli=/usr/local/mysql/bin/mysql_config mysqli文件目錄,優(yōu)化支持 –enable-safe-mode 打開安全模式 –enable-ftp 打開ftp的支持 –enable-zip 打開對(duì)zip的支持 –with-bz2 打開對(duì)bz2文件的支持 –with-jpeg-dir 打開對(duì)jpeg圖片的支持 –with-png-dir 打開對(duì)png圖片的支持 –with-freetype-dir 打開對(duì)freetype字體庫(kù)的支持 –without-iconv 關(guān)閉iconv函數(shù),種字符集間的轉(zhuǎn)換 –with-libxml-dir 打開libxml2庫(kù)的支持 –with-xmlrpc 打開xml-rpc的C語(yǔ)言 –with-zlib-dir 打開zlib庫(kù)的支持 –with-gd 打開gd庫(kù)的支持 –enable-gd-native-ttf 支持TrueType字符串函數(shù)庫(kù) –with-curl 打開curl瀏覽工具的支持 –with-curlwrappers 運(yùn)用curl工具打開url流 –with-ttf 打開freetype1.*的支持,可以不加了 –with-xsl 打開XSLT文件支持,擴(kuò)展了libxml2庫(kù) ,需要libxslt軟件 –with-gettext 打開gnu的gettext 支持,編碼庫(kù)用到 –with-pear 打開pear命令的支持,php擴(kuò)展用的 –enable-calendar 打開日歷擴(kuò)展功能 –enable-mbstring 多字節(jié),字符串的支持 –enable-bcmath 打開圖片大小調(diào)整,用到zabbix監(jiān)控的時(shí)候用到了這個(gè)模塊 –enable-sockets 打開sockets 支持 –enable-exif 圖片的元數(shù)據(jù)支持 –enable-magic-quotes 魔術(shù)引用的支持 –disable-rpath 關(guān)閉額外的運(yùn)行庫(kù)文件 –disable-debug 關(guān)閉調(diào)試模式 –with-mime-magic=/usr/share/file/magic.mime 魔術(shù)頭文件位置 cgi方式安裝才用的參數(shù) –enable-fpm 打上php-fpm補(bǔ)丁后才有這個(gè)參數(shù),cgi方式安裝的啟動(dòng)程序 –enable-fastcgi 支持fastcgi方式啟動(dòng)php –enable-force-cgi-redirect 同上,幫助里沒(méi)有解釋 –with-ncurses 支持ncurses屏幕繪制以及基于文本終端的圖形互動(dòng)功能的動(dòng)態(tài)庫(kù) –enable-pcntl freeTDS需要用到的,可能是鏈接mssql才用到 mhash和mcrypt算法的擴(kuò)展 –with-mcrypt 算法 –with-mhash 算法 –with-gmp –enable-inline-optimization –with-openssl openssl的支持,加密傳輸時(shí)用到的 –enable-dbase –with-pcre-dir=/usr/local/bin/pcre-config perl的正則庫(kù)案安裝位置 –disable-dmalloc –with-gdbm dba的gdbm支持 –enable-sigchild –enable-sysvsem –enable-sysvshm –enable-zend-multibyte 支持zend的多字節(jié) –enable-mbregex –enable-wddx –enable-shmop –enable-soap PHP配置選項(xiàng)完整列表 數(shù)據(jù)庫(kù)選項(xiàng) --with-dbplus 包括 dbplus 的支持。 --with-adabas[=DIR] 包括 Adabas D 的支持。DIR 是 Adabas 的基本安裝目錄,默認(rèn)為 /usr/local。 --with-sapdb[=DIR] 包括 SAP DB 的支持。DIR 是 SAP DB 的基本安裝目錄,默認(rèn)為 /usr/local。 --with-solid[=DIR] 包括 Solid 的支持。DIR 是 Solid 的基本安裝目錄,默認(rèn)為 /usr/local/solid。 --with-ibm-db2[=DIR] 包括 IBM DB2 的支持。DIR 是 DB2 的基本安裝目錄,默認(rèn)為 /home/db2inst1/sqllib。 --with-empress[=DIR] 包括 Empress 的支持。DIR 是 Empress 的基本安裝目錄,默認(rèn)為 $EMPRESSPATH。自 PHP4起,本選項(xiàng)僅支持 Empress 8.60 及以上版本。 --with-empress-bcs[=DIR] 包括 Empress Local Access 的支持。DIR 是 Empress 的基本安裝目錄,默認(rèn)為$EMPRESSPATH。自 PHP4 起,本選項(xiàng)僅支持 Empress 8.60 及以上版本。 --with-birdstep[=DIR] 包括 Birdstep 的支持。DIR 是 Birdstep 的基本安裝目錄,默認(rèn)為/usr/local/birdstep。 --with-custom-odbc[=DIR] 包括用戶自定義 ODBC 的支持。DIR 是 ODBC 的基本安裝目錄,默認(rèn)為 /usr/local。要確認(rèn)定義了CUSTOM_ODBC_LIBS 并且在 include 目錄中有某個(gè) odbc.h。例如,對(duì)于 QNX 下的 Sybase SQLAnywhere 5.5.00,在運(yùn)行 configure 腳本之前應(yīng)該先定義以下環(huán)境變量: CPPFLAGS="-DODBC_QNX-DSQLANY_BUG" LDFLAGS=-lunix CUSTOM_ODBC_LIBS="-ldblib-lodbc". --with-iodbc[=DIR] 包括 iODBC 的支持。DIR 是 iODBC 的基本安裝目錄,默認(rèn)為 /usr/local。 --with-esoob[=DIR] 包括 Easysoft OOB 的支持。DIR 是 OOB 的基本安裝目錄,默認(rèn)為/usr/local/easysoft/oob/client。 --with-unixODBC[=DIR] 包括 unixODBC 的支持。DIR 是 unixODBC 的基本安裝目錄,默認(rèn)為 /usr/local。 --with-openlink[=DIR] 包括 OpenLink ODBC 的支持。DIR 是 OpenLink 的基本安裝目錄,默認(rèn)為 /usr/local。這和 iODBC一樣。 --with-dbmaker[=DIR] 包括 DBMaker 的支持。DIR 是 DBMaker 的基本安裝目錄,默認(rèn)為最新版 DBMaker 安裝的目錄(例如/home/dbmaker/3.6)。 --disable-unified-odbc 取消對(duì) unified ODBC 的支持。僅適用于激活了 iODBC,Adabas,Solid,Velocis 或用戶自定義 ODBC界面。僅能用于 PHP 3! 圖像選項(xiàng) --without-gd 禁用 GD 支持。僅用于 PHP 3! --with-imagick Imagick 擴(kuò)展被移到 PEAR 中的 PECL 中去了,可以在這里找到。PHP 4 中的安裝指示可以在 PEAR站點(diǎn)中找到。只用 --with-imagick 僅在 PHP 3 中支持,除非依照 PEAR 站點(diǎn)的指示去做。 --with-ming[=DIR] 包括 ming 支持。 雜類選項(xiàng) --enable-force-cgi-redirect 激活服務(wù)器內(nèi)部重定向的安全檢查。如果是在 Apache 中以 CGI 方式使用 PHP 則應(yīng)該使用此選項(xiàng)。 --enable-discard-path 使用此選項(xiàng)可以使 PHP 的 CGI 可執(zhí)行程序安全地放置在 web 目錄樹以外的地方,并且別人也不能繞過(guò) .htaccess的安全設(shè)置。 --with-fastcgi 將 PHP 編譯成 FastCGI 應(yīng)用程序。 --enable-debug 編譯時(shí)加入調(diào)試符號(hào)。 --with-layout=TYPE 設(shè)置安裝后的文件布局。TYPE 可以是 PHP(默認(rèn)值)或者 GNU。 --with-pear=DIR 將 PEAR 安裝在 DIR 目錄中(默認(rèn)為 PREFIX/lib/php)。 --without-pear 不安裝 PEAR。 --enable-sigchild 激活 PHP 自己的 SIGCHILD 句柄。 --disable-rpath 禁止傳遞附加的運(yùn)行時(shí)庫(kù)搜索路徑。 --enable-libgcc 激活顯式 libgcc 連接。 --enable-php-streams 包含試驗(yàn)的 PHP 流。除非是測(cè)試源代碼,否則不要使用! --with-zlib-dir=<DIR> 定義zlib 的安裝路徑。 --with-aspell[=DIR] 包含 ASPELL 支持。 --with-ccvs[=DIR] 包含 CCVS 支持。 --with-cybercash[=DIR] 包含 CyberCash 支持。DIR 是 CyberCash MCK 的安裝目錄。 --with-icap[=DIR] 包含 ICAP 支持。 --with-ircg-config ircg-config 腳本的路徑。 --with-ircg 包含 ircg 支持。 --enable-mailparse 包含 mailparse 支持。 --with-muscat[=DIR] 包含 muscat 支持。 --with-satellite[=DIR] 激活通過(guò) Satellite(試驗(yàn)性質(zhì))的 CORBA 支持。DIR 是 ORBit 的主目錄。 --enable-trans-sid 激活透明的 session id 傳播。 --with-regex[=TYPE] 使用系統(tǒng) regex 庫(kù)(不贊成)。 --with-vpopmail[=DIR] 包含 vpopmail 支持。 --with-tsrm-pthreads 使用 POSIX 線程(默認(rèn)值)。 --enable-shared[=PKGS] 編譯共享庫(kù) [default=yes]。 --enable-static[=PKGS] 編譯靜態(tài)庫(kù) [default=yes]。 --enable-fast-install[=PKGS] 為快速安裝而優(yōu)化 [default=yes]。 --with-gnu-ld 假定 C 編譯器使用 GNU ld [default=no]。 --disable-libtool-lock 避免鎖死(可能會(huì)破壞并行編譯)。 --with-pic 嘗試只使用 PIC/non-PIC 對(duì)象 [default=use both]。 --enable-memory-limit 編譯時(shí)加入內(nèi)存限制支持。 --disable-url-fopen-wrapper 禁止通過(guò) URL 的 fopen wrapper,不能通過(guò) HTTP 或 FTP 訪問(wèn)文件。 --enable-versioning 僅輸出所需要的符號(hào)。更多信息見 INSTALL 文件。 --with-imsp[=DIR] 包含 IMSp 支持(DIR 是 IMSP 的 include 目錄和 libimsp.a 目錄)。僅用于 PHP 3! --with-mck[=DIR] 包含 Cybercash MCK 支持。DIR 是 cybercash mck 編譯目錄,默認(rèn)為/usr/src/mck-3.2.0.3-Linux。幫助見 extra/cyberlib。僅用于 PHP 3! --with-mod-dav=DIR 包含通過(guò) Apache 的 mod_dav 的 DAV 支持。DIR 是 mod_dav 的安裝目錄(僅用于 Apache模塊版本!)僅用于 PHP 3! --enable-debugger 編譯入遠(yuǎn)程調(diào)試函數(shù)。僅用于 PHP 3! --enable-versioning 利用 Solaris 2.x 和 Linux 提供的版本控制與作用范圍的優(yōu)勢(shì)。僅用于 PHP 3! PHP 選項(xiàng) --enable-maintainer-mode 激活將編譯規(guī)則和未使用的(以及一些混淆的)依賴文件放入臨時(shí)安裝中。 --with-config-file-path=PATH 設(shè)定php.ini 所在的路徑,默認(rèn)為PREFIX/lib。 --enable-safe-mode 默認(rèn)激活安全模式。 --with-exec-dir[=DIR] 安全模式下只允許此目錄下執(zhí)行程序。默認(rèn)為/usr/local/php/bin。 --enable-magic-quotes 默認(rèn)激活 magic quotes。 --disable-short-tags 默認(rèn)禁止簡(jiǎn)寫的 PHP 開始標(biāo)記 <?。 服務(wù)器選項(xiàng) --with-aolserver=DIR 指定已安裝的 AOLserver 的路徑。 --with-apxs[=FILE] 編譯共享 Apache 模塊。FILE 是可選的 Apache 的 apxs 工具的路徑,默認(rèn)為 apxs。確保指定的 apxs版本是安裝后的文件而不是 Apache 源程序中包中的。 --with-apache[=DIR] 編譯Apache 模塊。DIR是 Apache 源程序的最高一級(jí)目錄。默認(rèn)為/usr/local/apache。 --with-mod_charset 激活 mod_charset 中的傳遞表(Apache 中)。 --with-apxs2[=FILE] 編譯共享的Apache 2.0 模塊。FILE是可選的 Apache 的apxs 工具的路徑,默認(rèn)為apxs。 --with-fhttpd[=DIR] 編譯 fhttpd 模塊。DIR 是 fhttpd 的源代碼路徑,默認(rèn)為 /usr/local/src/fhttpd。 --with-isapi=DIR 將 PHP 編譯為 ISAPI 模塊用于 Zeus。 --with-nsapi=DIR 指定已安裝的 Netscape 服務(wù)器路徑。 --with-phttpd=DIR --with-pi3web=DIR 將 PHP 編譯為用于 Pi3Web 的模塊。 --with-roxen=DIR 將 PHP 編譯為一個(gè) Pike 模塊。DIR 是 Roxen 的根目錄,通常為/usr/local/roxen/server。 --enable-roxen-zts 編譯 Roxen 模塊,使用 Zend Thread Safety。 --with-servlet[=DIR] 包含 servlet 支持。DIR 是 JSDK 的基本安裝目錄。本 SAPI 需要 Java 擴(kuò)展必須被編譯為共享的dl。 --with-thttpd=SRCDIR 將 PHP 編譯為 thttpd 模塊。 --with-tux=MODULEDIR 將 PHP 編譯為 TUX 模塊(僅用于 Linux)。 配置fpm的用戶組和用戶,以及安裝其他擴(kuò)展
./configure --prefix=/usr/local/php --enable-fpm --with-fpm-user=www --with-fpm-group=www --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-mysqlnd-compression-support --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --enable-intl --with-mcrypt --with-libmbfl --enable-ftp --with-gd --enable-gd-jis-conv --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --disable-fileinfo --enable-opcache --with-pear --enable-maintainer-zts --with-ldap=shared --without-gdbm 開始檢查依賴,做編譯安前的準(zhǔn)備
一般都會(huì)有錯(cuò)誤: 錯(cuò)誤一: 解決方法:缺了這個(gè)sqlite3這個(gè)包,我們就安裝它 yum install sqlite-devel
錯(cuò)誤二: 解決方法:它說(shuō)沒(méi)有找到這個(gè)文件夾,我們就給它一個(gè) cp -frp /usr/lib64/libldap* /usr/lib/
錯(cuò)誤三: 解決方法:缺了這個(gè)oniguruma這個(gè)包,我們就安裝它 yum install oniguruma 結(jié)果不行,去查看了官方更新日志 發(fā)現(xiàn)mbsting 需要oniguruma6.9.4 git的基本用戶和實(shí)例,git與github的區(qū)別 #從github中下載源碼 git clone https://github.com/kkos/oniguruma #官方安裝步驟 possibly undefined macro: AM_INIT_AUTOMAKE 需要先 #autoreconf install #要?jiǎng)h除之前安的
運(yùn)行./configure,直接出現(xiàn)下圖 編譯安裝(安裝要花一點(diǎn)時(shí)間)make && make install
映射全局命令 ln -s /usr/local/php/sbin/* /usr/local/sbin/ ln -s /usr/local/php/bin/* /usr/local/bin/ 輸入 php -v ,出現(xiàn)下圖,這就安裝成功了
刪除php7.4 rm -rf /usr/local/php /bin/php /usr/local/sbin/php-fpm /usr/local/bin/php /usr/local/bin/pear /usr/local/bin/peardev /usr/local/bin/pecl /usr/local/bin/phar /usr/local/bin/phar.phar /usr/local/bin/php-cgi /usr/local/bin/php-config /usr/local/bin/phpdbg /usr/local/bin/phpize
3.LNMP(一鍵安裝包)僅安裝(php7.4)參考網(wǎng)站 出官網(wǎng)找到有php7.4的版本,是lnmp1.7才開始支持php7.4,但不是穩(wěn)定版,如果是用于生產(chǎn)環(huán)境還是建議用穩(wěn)的版本 wget http://soft.vpser.net/lnmp/lnmp1.7beta.tar.gz 輸入0,不安裝DataBase(數(shù)據(jù)庫(kù)) 輸入10,安裝php7.4這個(gè)版本 可以選擇不安裝、Jemalloc或TCmalloc,輸入對(duì)應(yīng)序號(hào)回車,直接回車為默認(rèn)為不安裝 腳本會(huì)自動(dòng)下載安裝php7.4
LNMP相關(guān)軟件安裝目錄 Nginx 目錄: /usr/local/nginx/ MySQL 目錄 : /usr/local/mysql/ MySQL數(shù)據(jù)庫(kù)所在目錄:/usr/local/mysql/var/ MariaDB 目錄 : /usr/local/mariadb/ MariaDB數(shù)據(jù)庫(kù)所在目錄:/usr/local/mariadb/var/ PHP目錄 : /usr/local/php/ 多PHP版本目錄 : /usr/local/php5.5/ 其他版本前面5.5的版本號(hào)換成其他即可 PHPMyAdmin目錄 : 0.9版本為/home/wwwroot/phpmyadmin/ 1.0及以后版本為 /home/wwwroot/default/phpmyadmin/ 強(qiáng)烈建議將此目錄重命名為其不容易猜到的名字。phpmyadmin可自己從官網(wǎng)下載新版替換。 默認(rèn)網(wǎng)站目錄 : 0.9版本為 /home/wwwroot/ 1.0及以后版本為 /home/wwwroot/default/ Nginx日志目錄:/home/wwwlogs/ /root/vhost.sh添加的虛擬主機(jī)配置文件所在目錄:/usr/local/nginx/conf/vhost/ PureFtpd 目錄:/usr/local/pureftpd/ PureFtpd web管理目錄: 0.9版為/home/wwwroot/default/ftp/ 1.0版為 /home/wwwroot/default/ftp/ Proftpd 目錄:/usr/local/proftpd/ Redis 目錄:/usr/local/redis/
LNMP相關(guān)配置文件位置 Nginx主配置(默認(rèn)虛擬主機(jī))文件:/usr/local/nginx/conf/nginx.conf 添加的虛擬主機(jī)配置文件:/usr/local/nginx/conf/vhost/域名.conf MySQL配置文件:/etc/my.cnf PHP配置文件:/usr/local/php/etc/php.ini php-fpm配置文件:/usr/local/php/etc/php-fpm.conf PureFtpd配置文件:/usr/local/pureftpd/pure-ftpd.conf 1.3及更高版本:/usr/local/pureftpd/etc/pure-ftpd.conf PureFtpd MySQL配置文件:/usr/local/pureftpd/pureftpd-mysql.conf Proftpd配置文件:/usr/local/proftpd/etc/proftpd.conf 1.2及之前版本為/usr/local/proftpd/proftpd.conf Proftpd 用戶配置文件:/usr/local/proftpd/etc/vhost/用戶名.conf Redis 配置文件:/usr/local/redis/etc/redis.conf
LNMPA相關(guān)目錄文件位置 Apache目錄:/usr/local/apache/ Apache配置文件:/usr/local/apache/conf/httpd.conf Apache虛擬主機(jī)配置文件目錄:/usr/local/apache/conf/vhost/ Apache默認(rèn)虛擬主機(jī)配置文件:/usr/local/apache/conf/extra/httpd-vhosts.conf 虛擬主機(jī)配置文件名稱:/usr/local/apache/conf/vhost/域名.conf
LNMP狀態(tài)管理命令:
|
|