Centos7使用Yum安裝高版本的LNMP

      網友投稿 902 2025-04-02

      在紅帽系列的Linux操作系統中,nginx/mysql/php等軟件版本相對較低,即使安裝了epel的源,也不能解決這些軟件版本低的問題。所以,如果想體驗使用高版本的LNMP的話,需要手動編譯或者是從官方提供的rpm源這兩種方式進行安裝(哦,對了,mysql除了源碼和rpm安裝,還有一種是二進制免編譯包安裝。),軟件的編譯的話,需要準備的東西太多,而且太繁瑣和浪費時間,沒有特殊需求的話,可以選擇使用rpm的方式進行安裝,便捷,簡單。

      接下來將逐一介紹通過rpm包的方式,在Centos 7.X系列的操作系統中使用yum工具安裝高版本的nginx/mysql/php這三個軟件。

      本篇文章參考了NGINX、MySQL、PHP的官方文檔,以及百度google搜索出來的一些文檔,加上自己的思路整合而成的,某些地方可能會涉及到摘抄。

      一、使用yum 安裝NGINX服務

      1、安裝yum源

      wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm yum install -y nginx-release-centos-7-0.el7.ngx.noarch.rpm yum clean all && yum makecache

      2、檢查yum源中的nginx版本

      yum list|grep nginx

      如上圖,最后一列帶有“@nginx”的行的軟件表示已經安裝了。如果有nginx-1.12版本的module等,需要卸載掉

      yum remove nginx-mod-http-geoip

      在這里如果不清理舊版本的NGINX相關軟件包,會導致nginx-1.14版本,可以安裝并成功但是無法正常啟動,會產生報錯顯示某一個模塊版本過低,不匹配已經安裝的nginx版本,需要清理的nginx舊模塊有以下命令中的rpm包;

      yum remove nginx-mod-stream nginx-mod-mail nginx-mod-http-xslt-filter nginx-mod-http-perl nginx-mod-http-image-filter nginx-mod-http-geoip nginx-filesystem nginx-all-modules;

      3、安裝高版本NGINX

      yum install -y nginx nginx-debuginfo nginx-module-geoip nginx-module-geoip-debuginfo nginx-module-image-filter nginx-module-image-filter-debuginfo nginx-module-njs nginx-module-njs-debuginfo nginx-module-perl nginx-module-perl-debuginfo nginx-module-xslt nginx-module-xslt-debuginfo

      4、檢查NGINX是否正常啟動

      systemctl restart nginx ps -ef |grep nginx nginx -V

      第一個命令是重啟nginx服務;第二個命令是檢查是否存在NGINX進程;第三個命令檢查nginx服務中,都有哪些模塊。

      如果啟動沒有問題,NGINX已經安裝完成

      二、使用yum安裝MySQL服務

      Centos7使用Yum安裝高版本的LNMP

      1、安裝官方推薦的mysql的rpm源

      #可以不用加 -i 和-c 選項 wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm yum install -y mysql57-community-release-el7-10.noarch.rpm yum clean all &&yum makecache

      2、查看可安裝的MySQL版本

      yum repolist all|grep mysql

      3、使用yum-config-manager命令啟用或者禁用相應的mysql版本

      #禁用mysql5.7 yum-config-manager --disable mysql57-community #啟用mysql5.7 yum-config-manager --enable mysql57-community

      4、安裝mysql5.7

      yum install -y mysql-community-common mysql-community-libs mysql-community-libs-compat mysql-community-client mysql-community-server

      5、修改配置文件

      MySQL默認的配置文件路徑為/etc/my.cnf,如果默認配置文件不能滿足需求,可以自行修改配置文件。

      下面從網上摘抄一份配置文件,僅供參考:

      vim /etc/my.cnf [mysqld] pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock datadir = /var/lib/mysql #log-error = /var/log/mysql/error.log # By default we only accept connections from localhost #bind-address = 127.0.0.1 # Disabling symbolic-links is recommended to prevent assorted security risks #支持符號鏈接,就是可以通過軟連接的方式,管理其他目錄的數據庫,最好不要開啟,當一個磁盤或分區空間不夠時,可以開啟該參數將數據存儲到其他的磁盤或分區。 #http://blog.csdn.net/moxiaomomo/article/details/17092871 symbolic-links=0 ########basic settings######## server-id = 11 port = 3306 user = mysql #設置autocommit=0,則用戶將一直處于某個事務中,直到執行一條commit提交或rollback語句才會結束當前事務重新開始一個新的事務。set autocommit=0的好處是在頻繁開啟事務的場景下,減少一次begin的交互。 autocommit = 1 #utf8mb4編碼是utf8編碼的超集,兼容utf8,并且能存儲4字節的表情字符。 #采用utf8mb4編碼的好處是:存儲與獲取數據的時候,不用再考慮表情字符的編碼與解碼問題。 character_set_server=utf8mb4 skip_name_resolve = 1 max_connections = 800 # 對于同一主機,如果有超出該參數值個數的中斷錯誤連接,則該主機將被禁止連接。如需對該主機進行解禁,執行:FLUSH HOST。 max_connect_errors = 1000 #數據庫隔離級別 transaction_isolation = READ-COMMITTED #MySQL在完成某些join(連接)需求的時候,為了減少參與join的“被驅動表”的讀取次數以提高性能,需要使用到join buffer來協助完成join操作當join buffer 太小,MySQL不會將該buffer存入磁盤文件而是先將join buffer中的結果與需求join的表進行操作,然后清空join buffer中的數據,繼續將剩余的結果集寫入次buffer中 join_buffer_size = 128M tmp_table_size = 64M tmpdir = /tmp #該值設置過小將導致單個記錄超過限制后寫入數據庫失敗,且后續記錄寫入也將失敗 max_allowed_packet = 64M #mysql在關閉一個交互的連接之前所要等待的秒數 interactive_timeout = 1200 #mysql在關閉一個非交互的連接之前所要等待的秒數 wait_timeout = 600 #MySQL讀入緩沖區的大小 read_buffer_size = 16M #MySQL的隨機讀緩沖區大小 read_rnd_buffer_size = 8M #MySQL的順序讀緩沖區大小 sort_buffer_size = 8M ########log settings######## log_error = /var/log/docker_log/mysql/error.log #開啟慢查詢日志 slow_query_log = 1 #超出次設定值的SQL即被記錄到慢查詢日志 long_query_time = 6 slow_query_log_file = /var/log/docker_log/mysql/slow.log #表示記錄下沒有使用索引的查詢 log_queries_not_using_indexes = 1 #記錄管理語句 log_slow_admin_statements = 1 #開啟復制從庫復制的慢查詢的日志 log_slow_slave_statements = 1 #設置每分鐘增長的沒有使用索引查詢的日志數量 log_throttle_queries_not_using_indexes = 10 expire_logs_days = 90 min_examined_row_limit = 100 ########replication settings######## #將master.info和relay.info保存在表中 master_info_repository = TABLE relay_log_info_repository = TABLE log_bin = bin.log #當每進行n次事務提交之后,MySQL將進行一次fsync之類的磁盤同步指令來將binlog_cache中的數據強制寫入磁盤。設置為零是讓系統自行決定 sync_binlog = 5 #開啟全局事務ID,GTID能夠保證讓一個從服務器到其他的從服務器那里實現數據復制而且能夠實現數據整合的 gtid_mode = on #開啟gtid,必須主從全開 enforce_gtid_consistency = 1 #從服務器的更新是否寫入二進制日志 log_slave_updates = 1 #三種模式 STATEMENT(有可能主從數據不一致,日質量小)、ROW(產生大量二進制日志)、MIXED binlog_format = mixed #relay-log日志記錄的是從服務器I/O線程將主服務器的二進制日志讀取過來記錄到從服務器本地文件,然后SQL線程會讀取relay-log日志的內容并應用到從服務器 relay_log = /var/log/docker_log/mysql/relay.log relay_log_recovery = 1 #開啟簡單gtid,開啟此項會提升mysql執行恢復的性能 binlog_gtid_simple_recovery = 1 slave_skip_errors = ddl_exist_errors ########innodb settings######## #這個參數在一開始初始化時就要加入my.cnf里,如果已經創建了表,再修改,啟動MySQL會報錯。最好為8K #innodb_page_size = 16K innodb_page_size = 8K #數據緩沖區buffer pool大小,建議使用物理內存的 75% innodb_buffer_pool_size = 2G #當buffer_pool的值較大的時候為1,較小的設置為8 innodb_buffer_pool_instances = 8 #運行時load緩沖池,快速預熱緩沖池,將buffer pool的內容(文件頁的索引)dump到文件中,然后快速load到buffer pool中。避免了數據庫的預熱過程,提高了應用訪問的性能 innodb_buffer_pool_load_at_startup = 1 #運行時dump緩沖池 innodb_buffer_pool_dump_at_shutdown = 1 #在innodb中處理用戶查詢后,其結果在內存空間的緩沖池已經發生變化,但是還未記錄到磁盤。這種頁面稱為臟頁,將臟頁記錄到磁盤的過程稱為刷臟 innodb_lru_scan_depth = 2000 innodb_io_capacity = 4000 innodb_io_capacity_max = 8000 #事務等待獲取資源等待的最長時間,超過這個時間還未分配到資源則會返回應用失敗,默認50s innodb_lock_wait_timeout = 30 #日志組所在的路徑,默認為data的home目錄; innodb_log_group_home_dir = /data/mysql/ #innodb_undo_directory = /data/mysql/undolog/ #這個參數控制著innodb數據文件及redo log的打開、刷寫模式,http://blog.csdn.net/gua___gua/article/details/44916207 #innodb_flush_method = O_DIRECT-不經過系統緩存直接存入磁盤, innodb_file_format = Barracuda innodb_file_format_max = Barracuda innodb_strict_mode = 1 #innodb獨享表空間,有點很多,缺點會導致單個表文件過大 #innodb_file_per_table = 1 #undo日志回滾段 默認為128 innodb_undo_logs = 128 #傳統機械硬盤建議使用,而對于固態硬盤可以關閉 #innodb_flush_neighbors = 1 innodb_log_file_size = 1G innodb_log_buffer_size = 64M #控制是否使用獨立purge線程 innodb_purge_threads = 1 #改為ON時,允許單列索引最大達到3072。否則最大為767 innodb_large_prefix = 1 innodb_thread_concurrency = 8 #開啟后會將所有的死鎖記錄到error_log中 innodb_print_all_deadlocks = 1 innodb_sort_buffer_size = 16M ########semi sync replication settings######## #半同步復制 plugin_load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so" loose_rpl_semi_sync_master_enabled = 1 loose_rpl_semi_sync_slave_enabled = 1 loose_rpl_semi_sync_master_timeout = 5000 #表示轉儲每個bp instance LRU上最熱的page的百分比。通過設置該參數可以減少轉儲的page數。 innodb_buffer_pool_dump_pct = 40 #刷臟的進程N-1 innodb_page_cleaners = 4 innodb_undo_log_truncate = 1 innodb_max_undo_log_size = 2G #控制回收(收縮)undo log的頻率.undo log空間在它的回滾段沒有得到釋放之前不會收縮, innodb_purge_rseg_truncate_frequency = 128 log_timestamps=system #該參數基于MySQL5.7 Group Replication組復制的,沒有使用不要設置 #transaction_write_set_extraction=MURMUR32 #http://www.cnblogs.com/hzhida/archive/2012/08/08/2628826.html show_compatibility_56=on

      6、啟動MySQL

      systemctl start mysqld systemctl enable mysqld

      7、修改初始密碼

      mysql5.7在初次啟動的時候會產生一個臨時密碼,使用以下命令可以查看臨時密碼。

      grep "temporary password" /var/log/mysqld.log

      初次登錄MySQL時需要使用此臨時密碼,然后必須使用命令重置MySQL的最高管理員root的密碼,修改mysql密碼命令如下:

      alter user 'root'@'localhost' identified by 'Test123456!';

      第一次登錄時必須使用此命令進行修改密碼。需要注意的是密碼策略是需要大小寫數字特殊符號中的至少三個,不然過不了密碼安全監測。

      至此MySQL安裝完畢,盡情享受使用MySQL吧。

      三、使用yum 安裝PHP服務

      1、安裝PHP的yum源

      rpm -Uvh ##安裝webtatic源,此源中包含php5.5-7.2等的版本,不過國外的源,下載可能會比較慢 rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm yum clean all&&yum makecache

      2、查看可安裝的PHP版本

      yum list |grep php

      通過上面命令會查看到很多關于PHP的軟件,安裝php7.2版本(如果要安裝其他的版本,通過yum list 查找是否有相應的php版本,比如此源終就有php55w這個版本)

      3、安裝PHP

      yum -y install php72w yum -y install php72w-cli php72w-common php72w-devel php72w-embedded php72w-fpm php72w-gd php72w-mbstring php72w-mysqlnd php72w-opcache php72w-pdo php72w-xml

      如果在使用中發現缺少某功能時,比如報錯無法使用php鏈接mysql ,則php72w-mysql沒有安裝,yum 安裝上即可,缺少其他的,參照剛剛解決思路解決即可。

      4、配置PHP

      PHP默認的配置文件路徑為"/etc/php.ini"

      如wordpress、zabbix等第一次使用的時候,會報一些錯誤,根據相應的錯誤修改即可。比如上傳文件大小的修改:upload_max_filesize = 8M,修改此選項即可。

      LNMP yum

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Excel中表格進行凍結多行多列的操作方法(在表格中怎樣凍結多行和多列)
      下一篇:word2010中如何固定表格寬度(word如何固定表格高度及寬度)
      相關文章
      国产亚洲午夜高清国产拍精品 | 亚洲熟女综合色一区二区三区 | av无码东京热亚洲男人的天堂| 亚洲日本va在线观看| 亚洲精品视频观看| 亚洲欧洲在线播放| 亚洲国产品综合人成综合网站| 亚洲码一区二区三区| 亚洲综合自拍成人| 亚洲精品美女久久久久| 911精品国产亚洲日本美国韩国| 亚洲伦另类中文字幕| 亚洲高清视频免费| 中文字幕亚洲精品| 亚洲最大中文字幕| 亚洲AV无码成人专区| 亚洲中文字幕无码亚洲成A人片| 亚洲综合激情五月丁香六月| 亚洲国产精华液2020| 国产亚洲精品国产福利在线观看| 亚洲AV无码不卡在线观看下载| 亚洲福利精品一区二区三区| 亚洲一区二区视频在线观看| 亚洲色成人中文字幕网站| 亚洲AV无码欧洲AV无码网站| 日本久久久久亚洲中字幕| 亚洲日本国产乱码va在线观看| 亚洲一卡2卡4卡5卡6卡在线99 | 亚洲熟妇无码八AV在线播放| 国产v亚洲v天堂无码网站| 亚洲AV无码乱码国产麻豆 | 亚洲视频网站在线观看| 亚洲jjzzjjzz在线播放| 亚洲欧美日韩综合久久久| 青草久久精品亚洲综合专区| 亚洲性久久久影院| 久久亚洲精品成人777大小说| 亚洲黄色一级毛片| 亚洲色成人WWW永久在线观看| 国产亚洲精品2021自在线| 国产亚洲av人片在线观看|