使用yum配置lnmp環境(CentOS7.6)

来源:https://www.cnblogs.com/haozheyu/archive/2018/12/09/10090176.html
-Advertisement-
Play Games

一、安裝版本詳情 Server: MariaDB Server version: 5.5.60 MariaDB MariaDB Server [root@ln 125 ~] cat /etc/redhat release CentOS Linux release 7.6.1810 (Core) [r ...


一、安裝版本詳情
Server: MariaDB
Server version: 5.5.60-MariaDB MariaDB Server
[root@ln-125 ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
[root@ln-125 ~]# nginx -v
nginx version: nginx/1.14.2
[root@ln-125 ~]# php-fpm -v
PHP 5.4.16 (fpm-fcgi) (built: Oct 30 2018 19:32:20)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

二、安裝Nginx服務
1.配置Nginx的yum源

[root@ln-125 ~]# cat >> /etc/yum.repos.d/nginx.repo <<EOF
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/      
#releasever 是linux 的版本號centos 7
gpgcheck=0
enabled=1
EOF

2.安裝並加入開機自啟動

yum clean all ;
yum makecache ;
yum list nginx ;
#這時就可以看到nginx安裝包了 ;
yum install nginx ;
systemctl enable nginx ;
systemctl start nginx 

如果有需要補充的安裝模塊可以根據當前Nginx版本到官方去下載源碼包根據當前版本增量編譯追加的模塊即可

[root@ln-125 ~]# nginx -V
nginx version: nginx/1.14.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'

三、安裝相關php服務
查詢當前的php安裝包
yum list php  php-fmp
這裡為什麼要安裝php-fpm?
因為php-fpm,是nginx和php的橋梁,php-fpm(快速進程管理),php-fpm預設進程為127.0.0.1:9000,一會php和php-fpm安裝完成後,要配置nginx的配置文件,讓其遇到客戶端php請求是,轉發給php-fpm(127.0.0.1:9000),php-fpm再讓php解析完成,最後又給nginx.
1.安裝

yum install -y php php-fpm php-pear php-devel #httpd 
#httpd 可選,參數更新中 php-pear為php的擴展工具,安裝後可以用pecl install 命令安裝php擴展

2.配置Nginx支持php文件
預設Nginx是處理html和htm文件的需要配置Nginx支持php

vim /etc/nginx/conf.d/default.conf 
...
    location / {
        root   /usr/share/nginx/html;  #設置根目錄的絕對路徑
        index  index.html index.htm index.php;  #匹配php文件
    }
    location ~ \.php$ {      #原來是註釋掉的需要開啟或複製
        root           /usr/share/nginx/html;  #設置絕對路徑
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;  #設置根目錄匹配
        include        fastcgi_params;
    }
...

3.設置php的unix sock 方式通信(可跳過這步)
預設配置文件使用的是監聽 9000 埠進行通信,針對小型單一、沒有做負債均衡的伺服器,可以使用 unix sock 方式通信增加php響應速度

touch /dev/shm/php-fpm-default.sock
[root@ln-125 ~]# cat /etc/php-fpm.d/www.conf |grep -Ev '^;|^$'
[www]
listen = /dev/shm/php-fpm-default.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
listen.owner = nobody
listen.group = nobody
listen.mode = 0666
user = nginx
group = nginx
。。。
systemctl restart php-fpm.service
systemctl enable php-fpm

4.優化配置(可選)

A) 修改php.ini的配置
vim /etc/php.ini 
cgi.fix_pathinfo=1 #將註釋去掉,開啟PHP的pathinfo偽靜態功能。
max_execution_time = 0  #腳本運行的最長時間,預設30秒
max_input_time = 300#腳本可以消耗的時間,預設60秒
memory_limit = 256M#腳本運行最大消耗的記憶體,根據你的需求更改數值,預設128M
post_max_size = 100M  #單提交的最大數據,此項不是限制上傳單個文件的大小,而是針對整個表單的提交數據進行限制的。限制範圍包括表單提交的所有內容.例如:發表貼子時,貼子標題,內容,附件等…預設8M
upload_max_filesize = 10M#上傳文件的最大許可大小 ,預設2M

B) 修改php-fpm的配置
vim /etc/php-fpm.d/www.conf 
找到以下兩行,解除註釋 
listen.owner = nobody 
listen.group = nobody 
找下以下兩行,將各自的apache改為nginx 
user = apache -> user = nginx 
group = apache -> group = nginx

四、安裝mariadb資料庫
yum install -y mariadb mariadb-server

#開機自啟
[root@ln-125 ~]# systemctl start mariadb.service
[root@ln-125 ~]# systemctl enable mariadb.service
#初始化資料庫配置
mysql_secure_installation  #配置預設設置(root密碼登錄方式等)
#設置預設字元集
編輯 vim /etc/my.cnf
[root@ln-125 ~]# grep -Ev '^#|^$' /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
character-set-server = utf8  ##設置預設編碼
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
!includedir /etc/my.cnf.d

systemctl restart mariadb.service

五、測試

cat >> /usr/share/nginx/html/index.php << EOF
<?php  
echo   phpinfo();    
?>
EOF

http://{功能變數名稱}
http://{功能變數名稱}/index.php
看到測試頁,那麼恭喜你搭建完成。

END


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • public class NullToEmptyStringResolver : DefaultContractResolver { /// /// 創建屬性 /// /// 類型 /// 序列化成員 /// protected override IList Creat... ...
  • 這是我定義的實體類 對應的資料庫表 映射文件 數據訪問層寫的是插入語句 錯誤: 捕捉到 NHibernate.Exceptions.GenericADOException HResult=-2146232832 Message=could not insert: [DaYou.Yun.Entity. ...
  • 由於本人是Java入門的開發,在C#開發中遇到的問題,在此記錄一下: 1、client端的send方法不管發送出去沒發送出去,總是顯示發送出去。 查資料得知,send方法是將數據發送到緩存區,並不是直接發送到server。 2、connected 方法,總是顯示已連接上。 一直以為connected ...
  • 在測試中經常會遇到請求一些https的url,但又沒有本地證書,這時候可以用下麵的方法忽略警告 ...
  • 這段時間因公司業務需要.net開發且需要用到DevExpress控制項,我自己研究學習了一下,用的是visual studio(2013)和DevExpress(V14.1.4),VS2013的下載安裝就不說,直接進入正題。 DevExpress(V14.1.4)安裝、破解和漢化的程式下載鏈接 鏈接: ...
  • 在 Asp.Net Core 中,我們常常使用 System.Threading.Timer 這個定時器去做一些需要長期在後臺運行的任務,但是這個定時器在某些場合卻不太靈光,而且常常無法控制啟動和停止,我們需要一個穩定的,類似 WebHost 這樣主機級別的任務管理程式,但是又要比 WebHost ... ...
  • 本節重點不講反射機制,而是講lambda表達式樹來替代反射中常用的獲取屬性和方法,來達到相同的效果但卻比反射高效。 每個人都知道,用反射調用一個方法或者對屬性執行SetValue和GetValue操作的時候都會比直接調用慢很多,這其中設計到CLR中內部的處理,不做深究。然而,我們在某些情況下又無法不 ...
  • ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...