主頁 > 作業系統 > Centos8(Liunx) 中安裝PHP7.4 的三種方法和洗掉它的三種方法

Centos8(Liunx) 中安裝PHP7.4 的三種方法和洗掉它的三種方法

2020-09-30 04:06:31 作業系統

 

編譯安裝

Centos8下PHP原始碼編譯和通過yum安裝的區別和以后的選擇

其實這兩種方法各有千秋:

yum安裝:

從yum安裝來說吧,yum相當于是自動化幫你安裝,你不用管軟體的依賴關系,在yum安裝程序是幫你把軟體的全部依賴關系幫你傻瓜式的解決了,而且現在Centos7的服務啟動已經換成systemctl命令來控制了,通過yum安裝會幫你自動注冊服務,你可以通過systemctl start xxx.service啟動服務,方便快捷,但是缺點是yum安裝你沒辦法干預,安裝的目錄也是分散的,你可能要執行whereis或者find命令去找yum安裝的路徑,有時候yum安裝的軟體版本比較低,你不得不去找其他的yum源,或者rpm包,

 

原始碼安裝:

原始碼編譯在安裝程序中可能要解決很多的依賴問題,才能裝好一個軟體,裝好的軟體你還不能通過systemctl來啟動服務,因為在/usr/lib/systemd/system/路徑下并沒有你的服務的組態檔,你要自己手寫一個,但是好處在于你能選擇軟體的版本,自定義安裝目錄,安裝的模塊,更加靈活方便,

 

LNMP一鍵安裝:

LNMP一鍵安裝包是一個用Linux Shell撰寫的可以為CentOS/RHEL/Fedora/Aliyun/Amazon、Debian/Ubuntu/Raspbian/Deepin/Mint Linux VPS或獨立主機安裝LNMP(Nginx/MySQL/PHP)、LNMPA(Nginx/MySQL/PHP/Apache)、LAMP(Apache/MySQL/PHP)生產環境的Shell程式,無需一個一個的輸入命令,無需值守,編譯安裝優化編譯引數,提高性能,解決不必要的軟體間依賴,特別針對配置自動優化,支持自定義Nginx、PHP編譯引數及網站和資料庫目錄、支持生成LetseEcrypt證書、LNMP模式支持多PHP版本、支持單獨安裝Nginx/MySQL/MariaDB/Pureftpd服務器,同時提供一些實用的輔助工具如:虛擬主機管理、FTP用戶管理、Nginx、MySQL/MariaDB、PHP的升級、常用快取組件Redis/Xcache等的安裝、重置MySQL root密碼、502自動重啟、日志切割、SSH防護DenyHosts/Fail2Ban、備份等許多實用腳本,

 

以上三種都是有各自的優點,建議是初學者一定要掌握原始碼編譯的程序,手動解決安裝過成中遇到的問題,熟悉如何編譯一個軟體,對于以后的發展是很有利的,而且有些軟體沒辦法通過yum安裝,這時候原始碼編譯就顯得很重要了,而像PHP這類軟體來說,如果是編譯安裝的,如果缺少一個擴展,你就得做phpize, ./configure, make && make install等方式編譯PHP擴展,這是很繁瑣的,通過yum安裝的話,當你要增加一個擴展,例如pdo,你就能夠yum search php | grep pdo來尋找合適的pdo包,然后下載安裝,系統會自動幫你添加到PHP擴展串列,省去我們很多作業,LNMP一鍵安裝是為開發者快速搭建開發環境時使用,可以讓開發者有更多時間在開發的業務邏輯上,

 

1.使用yum命令(學習yum的基本知識

參考網站:

# https://www.jb51.net/article/175918.htm
# https://www.itgeeker.net/php7-3-yum-install-on-centos-7/

 

這個方法是比較簡單的方法,可以很簡單快速地安裝php,(rpm命令的基本用法和實體

#添加幾個源,不然會報錯
#php高版本的yum源地址,有兩部分,其中一部分是epel-release,另外一部分來自webtatic,如果跳過epel-release的話,安裝webtatic的時候
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

 

添加相關的庫后,啟用 PHP 7.4 的 Remi 模塊并進行安裝,

dnf -y install dnf-utils

 

#使用這個命令查看php7.4
yum search php74*

 

 然后安裝你想要的模塊:

php74:安裝PHP 7.4的包
php74-php:用于創建動態web的PHP腳本語言網站
php74-build:基本的構建配置
php74-php-gd:用于PHP應用程式使用gd的模塊圖形庫
php74-xhprof:一個用于PHP - Web介面的層次分析器
php74-zephir:用于創建擴展的Zephir語言PHP:
php74-php-ast:抽象語法樹
php74-php-cli:用于PHP的命令列介面
php74-php-dba:一個用于PHP的資料庫抽象層模塊應用程式
php74-php-dbg:互動式PHP除錯器
php74-php-ffi:外部函式介面
php74-php-fpm:PHP FastCGI行程管理器
php74-php-gmp:一個用于使用GNU的PHP應用程式模塊議員庫
php74-php-lz4:x86_64: PHP的LZ4擴展
php74-php-pdo:一個用于PHP的資料庫訪問抽象模塊應用程式
php74-php-xml:x86_64:用于使用XML的PHP應用程式的模塊
php74-runtime:處理php74軟體集合的包:
php74-php-imap:x86_64:用于使用IMAP的PHP應用程式的模塊
php74-php-intl:x86_64: PHP國際化擴展應用程式
php74-php-json:x86_64: PHP的JavaScript物件符號擴展
php74-php-ldap:x86_64:用于使用LDAP的PHP應用程式的模塊
php74-php-oci8:x86_64:用于使用OCI8的PHP應用程式的模塊資料庫
php74-php-odbc:x86_64:用于使用ODBC的PHP應用程式的模塊資料庫
php74-php-pear:noarch: PHP擴展和應用程式庫框架
php74-php-pggi:GTK系結
php74-php-snmp:一個用于PHP應用程式查詢的模塊SNMP-managed設備
php74-php-soap:用于使用SOAP的PHP應用程式的模塊協議
php74-php-tidy:標準PHP模塊提供了tidy庫支持
php74-php-zstd:x86_64: Zstandard擴展名
php74-scldevel:x86_64:打包php74的開發檔案
php74-unit-php:用于NGINX單元的PHP模塊
php74-php-devel:構建PHP擴展所需的檔案
php74-php-pgsql:一個用于PHP的PostgreSQL資料庫模塊
php74-php-pinba:x86_64: Pinba統計服務器的客戶端擴展
php74-php-bcmath:用于PHP應用程式的模塊bcmath庫
php74-php-brotli:用于PHP的Brotli擴展
php74-php-common:PHP的公共檔案
php74-php-pspell:x86_64:用于PHP應用程式的模塊中介面
php74-php-recode:用于PHP應用程式的模塊重新編碼庫
php74-php-snappy:PHP的Snappy擴展
php74-php-sodium:x86_64:鈉密碼庫的包裝
php74-php-sqlsrv:x86_64:用于SQL Server的PHP Microsoft驅動程式
php74-php-xmlrpc:的PHP應用程式模塊xml - rpc協議
php74-php-enchant:增強PHP的拼寫擴展應用程式
php74-php-libvirt:用于Libvirt的PHP語言系結
php74-php-mysqlnd:x86_64:用于使用MySQL的PHP應用程式的模塊資料庫
php74-php-opcache:x86_64: Zend OPcache
php74-php-pecl-ds:x86_64: PHP的資料結構
php74-php-pecl-ev:提供libev庫的介面
php74-php-pecl-pq:PostgreSQL客戶端庫(libpq)系結
php74-php-pecl-uv:Libuv包裝器
php74-php-process:用于PHP腳本的模塊使用系統行程介面
php74-php-embedded:用于嵌入應用程式的PHP庫
php74-php-mbstring:一個用于PHP應用程式的模塊多位元組字串處理
php74-php-pecl-dio:直接I/O函式
php74-php-pecl-eio:提供libeio庫的介面
php74-php-pecl-env:加載環境變數
php74-php-pecl-lua:嵌入式lua解釋器
php74-php-pecl-lzf:x86_64:處理LZF de/壓縮的擴展
php74-php-pecl-nsq:NSQ客戶端的PHP擴展
php74-php-pecl-psr:PSR介面
php74-php-pecl-rar:用于讀取RAR存檔的PHP擴展
php74-php-pecl-rrd:x86_64: rrdtool的PHP系結
php74-php-pecl-sdl:簡單的PHP DirectMedia層
php74-php-pecl-svn:x86_64: Subversion版本的PHP系結控制系統
php74-php-pecl-vld:x86_64:轉儲PHP的內部表示腳本
php74-php-pecl-yac:無鎖用戶資料快取
php74-php-pecl-yaf:x86_64:又一個框架
php74-php-pecl-yar:輕量級并發RPC框架
php74-php-pecl-yaz:x86_64: Z39.50/SRU客戶端
php74-php-pecl-zip:一個ZIP檔案的擴展名
php74-php-pecl-zmq:ZeroMQ訊息傳遞
php74-php-phalcon4:Phalcon框架
php74-php-componere:在運行時撰寫PHP類
php74-php-litespeed:LiteSpeed Web服務器PHP支持
php74-php-maxminddb:MaxMind DB Reader擴展
php74-php-pdo-dblib:x86_64: PDO驅動程式,用于Microsoft SQL Server和Sybase資料庫
php74-php-pecl-amqp:與任何AMQP兼容的服務器通信
php74-php-pecl-apcu:APC用戶快取
php74-php-pecl-apfd:總是填充表單資料
php74-php-pecl-fann:用于FANN庫的包裝器
php74-php-pecl-grpc:x86_64:通用RPC框架
php74-php-pecl-http:擴展的HTTP支持
php74-php-pecl-krb5:Kerberos驗證擴展
php74-php-pecl-pcov:x86_64:代碼覆寫驅動程式
php74-php-pecl-ssh2:x86_64: libssh2庫的系結
php74-php-pecl-sync:已命名和未命名同步物件
php74-php-pecl-uopz:x86_64: Zend的用戶操作
php74-php-pecl-uuid:通用唯一識別符號擴展對于PHP
php74-php-pecl-vips:x86_64:與libvip介面的PHP擴展
php74-php-pecl-wddx:Web分布式資料交換
php74-php-pecl-yaml:x86_64: yaml的PHP系結
php74-php-phpiredis:x86_64: Redis的客戶端擴展名
php74-php-smbclient:libsmbclient的PHP包裝
php74-php-wkhtmltox:HTML轉換器
php74-php-pecl-cmark:CommonMark擴展名
php74-php-pecl-dbase:dBase資料庫檔案訪問函式
php74-php-pecl-druid:一個PHP的德魯伊驅動
php74-php-pecl-event:提供libevent庫的介面
php74-php-pecl-geoip:將IP地址映射到的擴展名地理位置
php74-php-pecl-gnupg:x86_64: gpgme庫的包裝
php74-php-pecl-mysql:MySQL資料庫訪問函式
php74-php-pecl-oauth:PHP OAuth消費者擴展
php74-php-pecl-parle:x86_64:決議和詞法分析
php74-php-pecl-raphf:資源和持久句柄工廠
php74-php-pecl-solr2:Apache Solr的API定向物件
php74-php-pecl-stats:用于統計計算的例程
php74-php-pecl-stomp:Stomp客戶端擴展
php74-php-pecl-taint:x86_64: XSS代碼嗅探器
php74-php-pecl-xattr:擴展屬性
php74-php-pecl-xdiff:檔案差異/補丁
php74-php-pecl-xxtea:XXTEA加密演算法擴展PHP
php74-php-libvirt-doc:noarch: php-libvirt檔案
php74-php-pecl-base58:用base58編碼和解碼資料
php74-php-pecl-bitset:位集庫
php74-php-pecl-crypto:OpenSSL密碼庫的包裝器
php74-php-pecl-gender:x86_64:性別擴展
php74-php-pecl-hprose:用于PHP的h散文
php74-php-pecl-hrtime:x86_64:高解析度定時
php74-php-pecl-mcrypt:x86_64: libmcrypt庫的系結
php74-php-pecl-pdflib:生成PDF檔案的包
php74-php-pecl-propro:屬性代理
php74-php-pecl-radius:Radius客戶端庫
php74-php-pecl-redis4:的擴展名 Redis鍵值存盤
php74-php-pecl-redis5:的擴展名 Redis鍵值存盤
php74-php-pecl-scrypt:Scrypt散列函式
php74-php-pecl-sphinx:Sphinx SQL全文的PECL擴展搜索引擎
php74-php-pecl-ssdeep:libfuzzy庫的包裝器
php74-php-pecl-trader:為貿易商提供技術分析
php74-php-pecl-xdebug:用于除錯PHP腳本的PECL包
php74-php-pecl-xhprof:x86_64: XHProf的PHP擴展,層次結構分析器
php74-php-pecl-yaconf:x86_64:另一個配置容器
php74-php-pecl-apcu-bc:APCu向后兼容模塊
php74-php-pecl-decimal:任意精度浮點小數
php74-php-pecl-gearman:PHP包裝器到libgearman
php74-php-pecl-gmagick:的包裝器GraphicsMagick庫
php74-php-pecl-imagick:x86_64:用于創建和修改映像的擴展使用ImageMagick
php74-php-pecl-inotify:x86_64: Inotify
php74-php-pecl-leveldb:LevelDB PHP系結
php74-php-pecl-memprof:x86_64:記憶體使用分析器
php74-php-pecl-mongodb:x86_64:用于PHP的MongoDB驅動程式
php74-php-pecl-msgpack:用于與MessagePack通信的API序列化
php74-php-pecl-rdkafka:基于librdkafka的Kafka客戶端
php74-php-pecl-rpminfo:x86_64: RPM資訊
php74-php-pecl-runkit7:為了這些你…不應該…無論如何我一直在做……但是肯定做的!
php74-php-pecl-seaslog:一個有效、快速、穩定的日志 PHP擴展
php74-php-pecl-selinux:用于PHP腳本的SELinux系結語言
php74-php-pecl-swoole4:PHP的異步并發分布式網路框架
php74-php-pecl-timecop:x86_64:時間旅行和凍結擴展
php74-php-pecl-varnish:Varnish快取系結
php74-php-pecl-xmldiff:x86_64: XML差異和合并
php74-php-pecl-igbinary:x86_64:替代標準PHP序列化器
php74-php-pecl-memcache:x86_64:使用Memcached的擴展快取守護行程
php74-php-pecl-mogilefs:要與之通信的PHP客戶端庫 MogileFS存盤
php74-php-pecl-mustache:Mustache模板語言
php74-php-pecl-protobuf:序列化結構化的機制資料
php74-php-pecl-rdkafka4:基于librdkafka的Kafka客戶端
php74-php-pecl-scoutapm:本地擴展組件 ScoutAPM的PHP代理
php74-php-pecl-translit:將非拉丁字符音譯設定為拉丁文
php74-php-snuffleupagus:x86_64: PHP的安全模塊
php74-php-zephir-parser:x86_64: Zephir決議器擴展
php74-php-pecl-cassandra:用于Apache的DataStax PHP驅動程式卡桑德拉
php74-php-pecl-json-post:JSON POST處理程式
php74-php-pecl-mailparse:用于決議和的PHP PECL包處理電子郵件訊息
php74-php-pecl-memcached:x86_64:使用Memcached的擴展快取守護行程
php74-php-pecl-mosquitto:libmosquito - to的擴展
php74-php-pecl-seasclick:一個Yandex ClickHouse客戶端驅動 PHP擴展
php74-php-pecl-xlswriter:一個高效、快速的xlsx檔案出口擴展
php74-php-horde-horde-lz4:Horde LZ4壓縮擴展
php74-php-pecl-apcu-devel:APCu開發人員檔案(頭檔案)
php74-php-pecl-couchbase2:Couchbase服務器PHP擴展
php74-php-pecl-geospatial:PHP擴展來處理公共地理空間功能
php74-php-pecl-handlebars:Handlebars模板語言
php74-php-pecl-http-devel:x86_64:擴展HTTP支持開發人員檔案(頭)
php74-php-pecl-krb5-devel:Kerberos擴展開發人員檔案(頭)
php74-php-pecl-luasandbox:帶有限制和安全的Lua解釋器環境
php74-php-pecl-opencensus:一個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訊息實作
php74-php-pecl-datadog-trace:APM和分布式跟蹤PHP
php74-php-pecl-hdr-histogram:x86_64: C語言的PHP擴展包裝hdrhistogram API
php74-php-pecl-imagick-devel:imagick擴展開發人員檔案(頭)
php74-php-pecl-msgpack-devel:MessagePack開發人員檔案(頭)
php74-php-pecl-mysql-xdevapi:MySQL資料庫訪問函式
php74-php-pecl-mysqlnd-azure:x86_64: mysqlnd的重定向插件
php74-php-pecl-igbinary-devel:Igbinary開發人員檔案(頭)
php74-php-pecl-uploadprogress:x86_64:跟蹤進度的擴展檔案上傳

 

# 運行一下
yum install php74-php 

 

 使用如下命令安裝額外的包

yum search php74*
yum install php74-xxx

 

運行并查看版本, 重啟命令, 添加自動啟動,鏈接php檔案

#運行并查看版本
php74 -v
#重啟命令php-fpm systemctl restart php74
-php-fpm
#添加自動啟動 systemctl enable php74
-php-fpm
#查看php7.4的安裝路徑
whereis php #鏈接php檔案 ln
-s /opt/remi/php74/root/usr/bin/php /usr/bin/php

 

一些組態檔的路徑

# The current PHP memory limit is below the recommended value of 512MB.
vi /etc/opt/remi/php74/php.ini
memory_limit = 512M

#如果你運行的是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以及需要的基本擴展庫(php7.4)

參考網站:

https://www.php.net/manual/zh/install.php

https://www.cnblogs.com/werben/p/11833903.html

https://www.cnblogs.com/ckh2014/p/10909672.html

https://www.24kplus.com/linux/1614.html

下載php原始碼

用php的官網,有很多源的,想要什么版本可以自己選一下

https://www.php.net/distributions/php-7.4.2.tar.bz2

#回到用戶目錄
cd ~
#下載php7.4原始碼
wget https://www.php.net/distributions/php-7.4.2.tar.bz2

 下載完成

 解壓文的基本命令和實體

# 把它移動到usr/local檔案下操作,我個人習慣
mv php-7.4.2.tar.bz2 /usr/local/php-7.4.2.tar.bz2
# 切換檔案目錄
cd /usr/local/ # 解壓檔案 tar
--bzip -xvf /usr/local/php-7.4.2.tar.bz2
# 切換檔案目錄
cd php-7.4.2

安裝編譯工具和庫

安裝php的依賴庫和安裝編譯的工具,無論有沒有裝都可以執行一下

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

 

 創建用戶組和用戶

groupadd www
useradd -g www www

php ./configure的一些引數及意義

PHP編譯引數的含義

./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安裝目錄,對mysql的支持
–with-mysqli=/usr/local/mysql/bin/mysql_config    mysqli檔案目錄,優化支持
–enable-safe-mode                              打開安全模式
–enable-ftp                                 打開ftp的支持
–enable-zip                                 打開對zip的支持
–with-bz2                    打開對bz2檔案的支持                        
–with-jpeg-dir                                 打開對jpeg圖片的支持
–with-png-dir                                 打開對png圖片的支持
–with-freetype-dir              打開對freetype字體庫的支持
–without-iconv                關閉iconv函式,種字符集間的轉換
–with-libxml-dir                 打開libxml2庫的支持
–with-xmlrpc              打開xml-rpc的C語言
–with-zlib-dir                                 打開zlib庫的支持
–with-gd                                    打開gd庫的支持
–enable-gd-native-ttf               支持TrueType字串函式庫
–with-curl                      打開curl瀏覽工具的支持
–with-curlwrappers                 運用curl工具打開url流
–with-ttf                      打開freetype1.*的支持,可以不加了
–with-xsl            打開XSLT檔案支持,擴展了libxml2庫 ,需要libxslt軟體
–with-gettext                      打開gnu的gettext 支持,編碼庫用到
–with-pear            打開pear命令的支持,php擴展用的
–enable-calendar             打開日歷擴展功能
–enable-mbstring                  多位元組,字串的支持
–enable-bcmath                  打開圖片大小調整,用到zabbix監控的時候用到了這個模塊
–enable-sockets                  打開sockets 支持
–enable-exif                     圖片的元資料支持
–enable-magic-quotes               魔術參考的支持
–disable-rpath                     關閉額外的運行庫檔案
–disable-debug                  關閉除錯模式
–with-mime-magic=/usr/share/file/magic.mime      魔術頭檔案位置

cgi方式安裝才用的引數
–enable-fpm                     打上php-fpm補丁后才有這個引數,cgi方式安裝的啟動程式
–enable-fastcgi                  支持fastcgi方式啟動php
–enable-force-cgi-redirect            同上,幫助里沒有解釋
–with-ncurses                     支持ncurses螢屏繪制以及基于文本終端的圖形互動功能的動態庫
–enable-pcntl           freeTDS需要用到的,可能是鏈接mssql才用到

mhash和mcrypt演算法的擴展
–with-mcrypt                     演算法
–with-mhash                     演算法

–with-gmp
–enable-inline-optimization
–with-openssl           openssl的支持,加密傳輸時用到的
–enable-dbase
–with-pcre-dir=/usr/local/bin/pcre-config    perl的正則庫案安裝位置
–disable-dmalloc
–with-gdbm                    dba的gdbm支持
–enable-sigchild
–enable-sysvsem
–enable-sysvshm
–enable-zend-multibyte              支持zend的多位元組
–enable-mbregex
–enable-wddx
–enable-shmop
–enable-soap

PHP配置選項完整串列
資料庫選項
--with-dbplus  包括 dbplus 的支持,
--with-adabas[=DIR]  包括 Adabas D 的支持,DIR 是 Adabas 的基本安裝目錄,默認為 /usr/local,
--with-sapdb[=DIR]  包括 SAP DB 的支持,DIR 是 SAP DB 的基本安裝目錄,默認為 /usr/local,
--with-solid[=DIR]  包括 Solid 的支持,DIR 是 Solid 的基本安裝目錄,默認為 /usr/local/solid,
--with-ibm-db2[=DIR]  包括 IBM DB2 的支持,DIR 是 DB2 的基本安裝目錄,默認為 /home/db2inst1/sqllib,
--with-empress[=DIR]  包括 Empress 的支持,DIR 是 Empress 的基本安裝目錄,默認為 $EMPRESSPATH,自 PHP4起,本選項僅支持 Empress 8.60 及以上版本,
--with-empress-bcs[=DIR]  包括 Empress Local Access 的支持,DIR 是 Empress 的基本安裝目錄,默認為$EMPRESSPATH,自 PHP4 起,本選項僅支持 Empress 8.60 及以上版本,
--with-birdstep[=DIR]  包括 Birdstep 的支持,DIR 是 Birdstep 的基本安裝目錄,默認為/usr/local/birdstep,
--with-custom-odbc[=DIR]  包括用戶自定義 ODBC 的支持,DIR 是 ODBC 的基本安裝目錄,默認為 /usr/local,要確認定義了CUSTOM_ODBC_LIBS 并且在 include 目錄中有某個 odbc.h,例如,對于 QNX 下的 Sybase SQLAnywhere 5.5.00,在運行 configure 腳本之前應該先定義以下環境變數: CPPFLAGS="-DODBC_QNX-DSQLANY_BUG" LDFLAGS=-lunix CUSTOM_ODBC_LIBS="-ldblib-lodbc".
--with-iodbc[=DIR]  包括 iODBC 的支持,DIR 是 iODBC 的基本安裝目錄,默認為 /usr/local,
--with-esoob[=DIR]  包括 Easysoft OOB 的支持,DIR 是 OOB 的基本安裝目錄,默認為/usr/local/easysoft/oob/client,
--with-unixODBC[=DIR]  包括 unixODBC 的支持,DIR 是 unixODBC 的基本安裝目錄,默認為 /usr/local,
--with-openlink[=DIR]  包括 OpenLink ODBC 的支持,DIR 是 OpenLink 的基本安裝目錄,默認為 /usr/local,這和 iODBC一樣,
--with-dbmaker[=DIR]  包括 DBMaker 的支持,DIR 是 DBMaker 的基本安裝目錄,默認為最新版 DBMaker 安裝的目錄(例如/home/dbmaker/3.6),
--disable-unified-odbc  取消對 unified ODBC 的支持,僅適用于激活了 iODBC,Adabas,Solid,Velocis 或用戶自定義 ODBC界面,僅能用于 PHP 3!

影像選項
--without-gd  禁用 GD 支持,僅用于 PHP 3--with-imagick  Imagick 擴展被移到 PEAR 中的 PECL 中去了,可以在這里找到,PHP 4 中的安裝指示可以在 PEAR站點中找到,只用 --with-imagick 僅在 PHP 3 中支持,除非依照 PEAR 站點的指示去做,
--with-ming[=DIR]  包括 ming 支持,

雜類選項
--enable-force-cgi-redirect  激活服務器內部重定向的安全檢查,如果是在 Apache 中以 CGI 方式使用 PHP 則應該使用此選項,
--enable-discard-path  使用此選項可以使 PHP 的 CGI 可執行程式安全地放置在 web 目錄樹以外的地方,并且別人也不能繞過 .htaccess的安全設定,
--with-fastcgi  將 PHP 編譯成 FastCGI 應用程式,
--enable-debug  編譯時加入除錯符號,
--with-layout=TYPE  設定安裝后的檔案布局,TYPE 可以是 PHP(默認值)或者 GNU,
--with-pear=DIR  將 PEAR 安裝在 DIR 目錄中(默認為 PREFIX/lib/php),
--without-pear  不安裝 PEAR,
--enable-sigchild  激活 PHP 自己的 SIGCHILD 句柄,
--disable-rpath  禁止傳遞附加的運行時庫搜索路徑,
--enable-libgcc  激活顯式 libgcc 連接,
--enable-php-streams  包含試驗的 PHP 流,除非是測驗源代碼,否則不要使用!
--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]  激活通過 Satellite(試驗性質)的 CORBA 支持,DIR 是 ORBit 的主目錄,
--enable-trans-sid  激活透明的 session id 傳播,
--with-regex[=TYPE]  使用系統 regex 庫(不贊成),
--with-vpopmail[=DIR]  包含 vpopmail 支持,
--with-tsrm-pthreads  使用 POSIX 執行緒(默認值),
--enable-shared[=PKGS]  編譯共享庫 [default=yes],
--enable-static[=PKGS]  編譯靜態庫 [default=yes],
--enable-fast-install[=PKGS]  為快速安裝而優化 [default=yes],
--with-gnu-ld  假定 C 編譯器使用 GNU ld [default=no],
--disable-libtool-lock  避免鎖死(可能會破壞并行編譯),
--with-pic  嘗試只使用 PIC/non-PIC 物件 [default=use both],
--enable-memory-limit  編譯時加入記憶體限制支持,
--disable-url-fopen-wrapper  禁止通過 URL 的 fopen wrapper,不能通過 HTTP 或 FTP 訪問檔案,
--enable-versioning  僅輸出所需要的符號,更多資訊見 INSTALL 檔案,
--with-imsp[=DIR]  包含 IMSp 支持(DIR 是 IMSP 的 include 目錄和 libimsp.a 目錄),僅用于 PHP 3--with-mck[=DIR]  包含 Cybercash MCK 支持,DIR 是 cybercash mck 編譯目錄,默認為/usr/src/mck-3.2.0.3-Linux,幫助見 extra/cyberlib,僅用于 PHP 3--with-mod-dav=DIR  包含通過 Apache 的 mod_dav 的 DAV 支持,DIR 是 mod_dav 的安裝目錄(僅用于 Apache模塊版本!)僅用于 PHP 3--enable-debugger  編譯入遠程除錯函式,僅用于 PHP 3--enable-versioning  利用 Solaris 2.x 和 Linux 提供的版本控制與作用范圍的優勢,僅用于 PHP 3!

PHP 選項
--enable-maintainer-mode  激活將編譯規則和未使用的(以及一些混淆的)依賴檔案放入臨時安裝中,
--with-config-file-path=PATH  設定php.ini 所在的路徑,默認為PREFIX/lib,
--enable-safe-mode  默認激活安全模式,
--with-exec-dir[=DIR]  安全模式下只允許此目錄下執行程式,默認為/usr/local/php/bin,
--enable-magic-quotes  默認激活 magic quotes,
--disable-short-tags  默認禁止簡寫的 PHP 開始標記 <?,

服務器選項
--with-aolserver=DIR  指定已安裝的 AOLserver 的路徑,
--with-apxs[=FILE]  編譯共享 Apache 模塊,FILE 是可選的 Apache 的 apxs 工具的路徑,默認為 apxs,確保指定的 apxs版本是安裝后的檔案而不是 Apache 源程式中包中的,
--with-apache[=DIR]  編譯Apache 模塊,DIR是 Apache 源程式的最高一級目錄,默認為/usr/local/apache,
--with-mod_charset  激活 mod_charset 中的傳遞表(Apache 中),
--with-apxs2[=FILE]  編譯共享的Apache 2.0 模塊,FILE是可選的 Apache 的apxs 工具的路徑,默認為apxs,
--with-fhttpd[=DIR]  編譯 fhttpd 模塊,DIR 是 fhttpd 的源代碼路徑,默認為 /usr/local/src/fhttpd,
--with-isapi=DIR  將 PHP 編譯為 ISAPI 模塊用于 Zeus,
--with-nsapi=DIR  指定已安裝的 Netscape 服務器路徑,
--with-phttpd=DIR
--with-pi3web=DIR  將 PHP 編譯為用于 Pi3Web 的模塊,
--with-roxen=DIR  將 PHP 編譯為一個 Pike 模塊,DIR 是 Roxen 的根目錄,通常為/usr/local/roxen/server,
--enable-roxen-zts  編譯 Roxen 模塊,使用 Zend Thread Safety,
--with-servlet[=DIR]  包含 servlet 支持,DIR 是 JSDK 的基本安裝目錄,本 SAPI 需要 Java 擴展必須被編譯為共享的dl,
--with-thttpd=SRCDIR  將 PHP 編譯為 thttpd 模塊,
--with-tux=MODULEDIR  將 PHP 編譯為 TUX 模塊(僅用于 Linux),

 配置fpm的用戶組和用戶,以及安裝其他擴展

 

./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

開始檢查依賴,做編譯安前的準備

 

一般都會有錯誤:

錯誤一:

 解決方法:缺了這個sqlite3這個包,我們就安裝它

yum install sqlite-devel

 

錯誤二:

  解決方法:它說沒有找到這個檔案夾,我們就給它一個

cp -frp /usr/lib64/libldap* /usr/lib/

 

 錯誤三:

 解決方法:缺了這個oniguruma這個包,我們就安裝它

yum install oniguruma

結果不行,去查看了官方更新日志 發現mbsting  需要oniguruma6.9.4

 git的基本用戶和實體,git與github的區別

#從github中下載原始碼
git clone https://github.com/kkos/oniguruma

#官方安裝步驟     possibly undefined macro: AM_INIT_AUTOMAKE    需要先 #autoreconf  install
#要洗掉之前安的
yum remove onigurma*
cd oniguruma/ autoreconf -vfi ./configure make make install

 

 

運行./configure,直接出現下圖

 

編譯安裝(安裝要花一點時間)

make && make install

 

映射全域命令

ln -s /usr/local/php/sbin/* /usr/local/sbin/
ln -s /usr/local/php/bin/* /usr/local/bin/

輸入 php -v ,出現下圖,這就安裝成功了

 

洗掉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)

參考網站

https://lnmp.org/

出官網找到有php7.4的版本,是lnmp1.7才開始支持php7.4,但不是穩定版,如果是用于生產環境還是建議用穩的版本

wget http://soft.vpser.net/lnmp/lnmp1.7beta.tar.gz
# 解壓
tar -zxvf
lnmp1.7beta.tar.gz
cd lnmp1.7
./install.sh

 輸入0,不安裝DataBase(資料庫)

 輸入10,安裝php7.4這個版本

 可以選擇不安裝、Jemalloc或TCmalloc,輸入對應序號回車,直接回車為默認為不安裝

腳本會自動下載安裝php7.4

 

 

LNMP相關軟體安裝目錄

Nginx 目錄: /usr/local/nginx/
MySQL 目錄 : /usr/local/mysql/
MySQL資料庫所在目錄:/usr/local/mysql/var/
MariaDB 目錄 : /usr/local/mariadb/
MariaDB資料庫所在目錄:/usr/local/mariadb/var/
PHP目錄 : /usr/local/php/
多PHP版本目錄 : /usr/local/php5.5/ 其他版本前面5.5的版本號換成其他即可
PHPMyAdmin目錄 : 0.9版本為/home/wwwroot/phpmyadmin/ 1.0及以后版本為 /home/wwwroot/default/phpmyadmin/ 強烈建議將此目錄重命名為其不容易猜到的名字,phpmyadmin可自己從官網下載新版替換,
默認網站目錄 : 0.9版本為 /home/wwwroot/ 1.0及以后版本為 /home/wwwroot/default/
Nginx日志目錄:/home/wwwlogs/
/root/vhost.sh添加的虛擬主機組態檔所在目錄:/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相關組態檔位置

Nginx主配置(默認虛擬主機)檔案:/usr/local/nginx/conf/nginx.conf
添加的虛擬主機組態檔:/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相關目錄檔案位置

Apache目錄:/usr/local/apache/
Apache組態檔:/usr/local/apache/conf/httpd.conf
Apache虛擬主機組態檔目錄:/usr/local/apache/conf/vhost/
Apache默認虛擬主機組態檔:/usr/local/apache/conf/extra/httpd-vhosts.conf
虛擬主機組態檔名稱:/usr/local/apache/conf/vhost/域名.conf

 

LNMP狀態管理命令:
LNMP 1.2+狀態管理: lnmp {start|stop|reload|restart|kill|status}
LNMP 1.2+各個程式狀態管理: lnmp {nginx|mysql|mariadb|php-fpm|pureftpd} {start|stop|reload|restart|kill|status}
LNMP 1.1狀態管理: /root/lnmp {start|stop|reload|restart|kill|status}
Nginx狀態管理:/etc/init.d/nginx {start|stop|reload|restart}
MySQL狀態管理:/etc/init.d/mysql {start|stop|restart|reload|force-reload|status}
Memcached狀態管理:/etc/init.d/memcached {start|stop|restart}
PHP-FPM狀態管理:/etc/init.d/php-fpm {start|stop|quit|restart|reload|logrotate}
PureFTPd狀態管理: /etc/init.d/pureftpd {start|stop|restart|kill|status}
ProFTPd狀態管理: /etc/init.d/proftpd {start|stop|restart|reload}
Redis狀態管理: /etc/init.d/redis {start|stop|restart|kill}

多PHP版本狀態管理:/etc/init.d/php-fpm5.5 {start|stop|quit|restart|reload|logrotate} 前面5.5為對應的PHP版本,其他版本自行替換,
如重啟LNMP,1.2+輸入命令:lnmp restart 即可;單獨重啟mysql:/etc/init.d/mysql restart 也可以 lnmp mysql restart ,兩個是一樣的,

LNMPA狀態管理命令:

LNMPA 1.2+狀態管理: lnmp {start|stop|reload|restart|kill|status}
LNMPA 1.2+各個程式狀態管理: lnmp {httpd|mysql|mariadb|pureftpd} {start|stop|reload|restart|kill|status}
LNMPA1.1狀態管理: /root/lnmpa {start|stop|reload|restart|kill|status}
Nginx狀態管理:/etc/init.d/nginx {start|stop|reload|restart}
MySQL狀態管理:/etc/init.d/mysql {start|stop|restart|reload|force-reload|status}
Memcached狀態管理:/etc/init.d/memcached {start|stop|restart}
PureFTPd狀態管理: /etc/init.d/pureftpd {start|stop|restart|kill|status}
ProFTPd狀態管理: /etc/init.d/proftpd {start|stop|restart|reload}
Apache狀態管理:/etc/init.d/httpd {start|stop|restart|graceful|graceful-stop|configtest|status}

LAMP狀態管理命令:
LAMP 1.2+狀態管理: lnmp {start|stop|reload|restart|kill|status}
LAMP 1.2+各個程式狀態管理: lnmp {httpd|mysql|mariadb|pureftpd} {start|stop|reload|restart|kill|status}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

   

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/140822.html

標籤:Linux

上一篇:一篇文章Shell腳本快速入門

下一篇:小白的linux筆記1:CentOS 8 安裝與設定

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • CA和證書

    1、在 CentOS7 中使用 gpg 創建 RSA 非對稱密鑰對 gpg --gen-key #Centos上生成公鑰/密鑰對(存放在家目錄.gnupg/) 2、將 CentOS7 匯出的公鑰,拷貝到 CentOS8 中,在 CentOS8 中使用 CentOS7 的公鑰加密一個檔案 gpg -a ......

    uj5u.com 2020-09-10 00:09:53 more
  • Kubernetes K8S之資源控制器Job和CronJob詳解

    Kubernetes的資源控制器Job和CronJob詳解與示例 ......

    uj5u.com 2020-09-10 00:10:45 more
  • VMware下安裝CentOS

    VMware下安裝CentOS 一、軟硬體準備 1 Centos鏡像準備 1.1 CentOS鏡像下載地址 下載地址 1.2 CentOS鏡像下載程序 點擊下載地址進入如下圖的網站,選擇需要下載的版本,這里選擇的是Centos8,點擊如圖所示。 決定選擇Centos8后,選擇想要的鏡像源進行下載,此 ......

    uj5u.com 2020-09-10 00:12:10 more
  • 如何使用Grep命令查找多個字串

    如何使用Grep 命令查找多個字串 大家好,我是良許! 今天向大家介紹一個非常有用的技巧,那就是使用 grep 命令查找多個字串。 簡單介紹一下,grep 命令可以理解為是一個功能強大的命令列工具,可以用它在一個或多個輸入檔案中搜索與正則運算式相匹配的文本,然后再將每個匹配的文本用標準輸出的格式 ......

    uj5u.com 2020-09-10 00:12:28 more
  • git配置http代理

    git配置http代理 經常遇到克隆 github 慢的問題,這里記錄一下幾種配置 git 代理的方法,解決 clone github 過慢。 目錄 git配置代理 git單獨配置github代理 git配置全域代理 配置終端環境變數 git配置代理 主要使用 git config 命令 git單獨 ......

    uj5u.com 2020-09-10 00:12:33 more
  • Linux npm install 裝包時提示Error EACCES permission denied解

    npm install 裝包時提示Error EACCES permission denied解決辦法 ......

    uj5u.com 2020-09-10 00:12:53 more
  • Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包

    Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包。 18 (flaskApi) [root@67 flaskDemo]# yum -y install nginx 19 已加載插件:fastestmirror, langpacks 20 Loading ......

    uj5u.com 2020-09-10 00:13:13 more
  • Linux查看服務器暴力破解ssh IP

    在公網的服務器上經常遇到別人爆破你服務器的22埠,用來挖礦或者干其他嘿嘿嘿的事情~ 這種情況下正確的做法是: 修改默認ssh的22埠 使用設定密鑰登錄或者白名單ip登錄 建議服務器密碼為復雜密碼 創建普通用戶登錄服務器(root權限過大) 建立堡壘機,實作統一管理服務器 統計爆破IP [root ......

    uj5u.com 2020-09-10 00:13:17 more
  • CentOS 7系統常見快捷鍵操作方式

    Linux系統中一些常見的快捷方式,可有效提高操作效率,在某些時刻也能避免操作失誤帶來的問題。 ......

    uj5u.com 2020-09-10 00:13:31 more
  • CentOS 7作業系統目錄結構介紹

    作業系統存在著大量的資料檔案資訊,相應檔案資訊會存在于系統相應目錄中,為了更好的管理資料資訊,會將系統進行一些目錄規劃,不同目錄存放不同的資源。 ......

    uj5u.com 2020-09-10 00:13:35 more
最新发布
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:43:21 more
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:42:36 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:26:53 more
  • 設定Windows主機的瀏覽器為wls2的默認瀏覽器

    這里以Chrome為例。 1. 準備作業 wsl是可以使用Windows主機上安裝的exe程式,出于安全考慮,默認情況下改功能是無法使用。要使用的話,終端需要以管理員權限啟動。 我這里以Windows Terminal為例,介紹如何默認使用管理員權限打開終端,具體操作如下圖所示: 2. 操作 wsl ......

    uj5u.com 2023-04-19 09:25:49 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:19:04 more
  • Linux學習筆記

    IP地址和主機名 IP地址 ifconfig可以用來查詢本機的IP地址,如果不能使用,可以通過install net-tools安裝。 Centos系統下ens33表示主網卡;inet后表示IP地址;lo表示本地回環網卡; 127.0.0.1表示代指本機;0.0.0.0可以用于代指本機,同時在放行設 ......

    uj5u.com 2023-04-18 06:52:01 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:50 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:01 more
  • 你是不是暴露了?

    作者:袁首京 原創文章,轉載時請保留此宣告,并給出原文連接。 如果您是計算機相關從業人員,那么應該經歷不止一次網路安全專項檢查了,你肯定是收到過資訊系統技術檢測報告,要求你加強風險監測,確保你提供的系統服務堅實可靠了。 沒檢測到問題還好,檢測到問題的話,有些處理起來還是挺麻煩的,尤其是線上正在運行的 ......

    uj5u.com 2023-04-05 16:52:56 more
  • 細節拉滿,80 張圖帶你一步一步推演 slab 記憶體池的設計與實作

    1. 前文回顧 在之前的幾篇記憶體管理系列文章中,筆者帶大家從宏觀角度完整地梳理了一遍 Linux 記憶體分配的整個鏈路,本文的主題依然是記憶體分配,這一次我們會從微觀的角度來探秘一下 Linux 內核中用于零散小記憶體塊分配的記憶體池 —— slab 分配器。 在本小節中,筆者還是按照以往的風格先帶大家簡單 ......

    uj5u.com 2023-04-05 16:44:11 more