Nginx+PHP+MySql環(huán)境配置

博客地址:https://m0ng0lfalcon.github.io/

Linux 環(huán)境配置


借鑒自:https://www.cnblogs.com/hangzhounec/p/9152604.html


一忿磅、Linux 的安裝

  1. 鏡像的準(zhǔn)備

    xubuntu-18.04.2-desktop-i386.iso

  2. 開始安裝

XUbuntu開始安裝.png

選擇英文版的安裝

  1. 一路按默認(rèn)的進(jìn)行塘雳。

  2. 正式安裝

XUbuntu正式安裝.png
  1. 安裝完成
安裝成功.png

二、Nginx 的安裝

  1. 命令安裝:

    sudo apt-get install nginx

  2. 修改 Nginx 配置文件

    sudo vim /etc/nginx/sites-available/default

  3. 修改如下內(nèi)容

    1. 修改41行:
      修改配置文件1.png
  1. 修改 56 ~ 63
    修改配置文件2.png
  1. 重啟 Nginx 服務(wù)

    sudo service nginx restart

  2. 測(cè)試 Nginx


    成功.png

三、php 安裝

  1. 命令安裝

    sudo apt-get install php7.2 php7.2-fpm php7.2-mysql

  2. 修改 php 配置文件

    sudo vim /etc/php/7.2/fpm/pool.d/www.conf

  3. 修改一下內(nèi)容彤路,修改 37 行


    修改配置文件.png
  1. 重啟php服務(wù)

    sudo service php7.0-fpm start

  2. 測(cè)試php服務(wù)

    1. /var/www文件夾下創(chuàng)建info.php

    2. 輸入一下代碼

      <?php
          phpinfo();
      ?>
      
    3. 在瀏覽器打開:localhost/info.php

      php配置成功.png


四、MySQL 安裝

  1. 命令安裝

    sudo apt-get install mysql-server mysql-client

  2. 更新密碼:

    sudo mysql
    
    use mysql;
    
    update mysql.user set authentication_string=PASSWORD('New_Password'), plugin='mysql_native_password' where user='root';
    # 這一步主要是在設(shè)置新密碼的時(shí)候兵拢,順便把用戶root的plugin進(jìn)行修改介褥,修改為默認(rèn)的 mysql_native_password,然后在刷新權(quán)限設(shè)置。
    
    flush privileges;
    
  3. 重啟 MySQL 服務(wù)

    sudo service mysql restart

  4. 測(cè)試 MySQL

    1. /var/www 文件夾下創(chuàng)建mysql.php

    2. 輸入一下代碼:

      <?php echo '<h1>Page loaded with PHP!</h1>';
      $conn = mysqli_connect('localhost', 'site_admin', 'your_password');
      
      if(!$conn){
          die('<h2>Error: </h2>' . mysqli_connect_error());
      }else{
          echo '<h2>Successfully Connected to MySQL Database!</h2>';
      }
      ?>
      
    3. 瀏覽器打開:localhost/mysql.php

      mysql成功鏈接.png


五曲聂、Nginx 安全加固

借鑒自:https://blog.51cto.com/purplegrape/1651656

  1. 備份 /etc/nginx/sites-available/default

  2. 屏蔽IP (屏蔽除中國(guó)以及美國(guó)以外的IP)

    if ( $geoip_country_code !~  ^(CN|US)$ ) {
         return 403;
    }
    
  3. 封殺各種user-agent

    if ($http_user_agent ~* "java|python|perl|ruby|curl|bash|echo|uname|base64|decode|md5sum|select|concat|httprequest|httpclient|nmap|scan" ) {
     return 403;
    }
    if ($http_user_agent ~* "" ) {
     return 403;
    }
    
  4. 封殺特定的url

    特定的文件擴(kuò)展名霹购,比如.bak

    location ~* \.(bak|swp|save|sh|sql|mdb|svn|git|old)$ {
    rewrite ^/(.*)$  $host  permanent;
    }
    

    知名程序,比如phpmyadmin

    location /(admin|phpadmin|status)    { deny all; }
    
  5. 封殺特定的http方法和行為,比如

    if ($request_method !~ ^(GET|POST|HEAD)$ ) {
     return 405;
    }
    
    if ($http_range ~ "\d{9,}") {
     return 444;
    }
    
  6. url 參數(shù)過濾敏感字,比如

    if ($query_string ~* "union.*select.*\(") { 
     rewrite ^/(.*)$  $host  permanent;
    } 
    
    if ($query_string ~* "concat.*\(") { 
     rewrite ^/(.*)$  $host  permanent;
    }
    

Windows下的環(huán)境配置


一朋腋、Nginx的安裝

借鑒自:https://www.cnblogs.com/jiangwangxiang/p/8481661.html

  1. 到官網(wǎng)http://nginx.org/下載最新的穩(wěn)定版本:
    nginx 下載.png
nginx 穩(wěn)定版本下載.png
  1. 下載之后解壓齐疙,得到如下:
解壓后.png
  1. 啟動(dòng)Nginx:

    1. 雙擊nginx.exe運(yùn)行
    2. 命令行輸入 start nginx 或者 nginx.exe
  2. 檢查是否啟動(dòng):

    瀏覽器輸入 http://localhost:80

    安裝成功.png

  1. 關(guān)閉Nginx:

    1. Nginx命令:nginx -s stop(快速停止nginx) 或 nginx -s quit(完整有序的停止nginx)
    2. taskkill命令:taskkill /f /t /im nginx.exe

二、php的安裝

借鑒自:https://www.cnblogs.com/wwjchina/p/9804576.html

  1. 下載最新版的 php

    網(wǎng)址:https://windows.php.net/download/

下載php最新版.png
  1. 解壓:
    解壓后.png
  1. 進(jìn)行配置 :

    1. 找到php.ini-development拷貝一份旭咽,并且重命名為php.ini

    2. 打開php.ini

    3. 搜索extension_dir配置項(xiàng)贞奋,去掉前面的分號(hào):;,并且把內(nèi)容改成php目錄下的ext的絕對(duì)路徑穷绵,例如:C:\Wnpm\php-7.3.7\ext

extension_dir.png
  1. 搜索cgi.fix_pathinfo配置項(xiàng)轿塔,同樣去掉分號(hào),設(shè)置為1
cgi.fix_pathinfo.png
  > `cgi.fix_pathinfo`是用來(lái)設(shè)置在cgi模式下PHP是否提供PATH_INFO信息仲墨。因?yàn)閚ginx默認(rèn)不會(huì)設(shè)置PATH_INFO的值勾缭,所以需要通過上面的方法來(lái)提供。

三目养、配置 Nginx + php

  1. 修改Nginx的配置文件

    1. 打開Nginx文件夾俩由,conf里的nginx.conf

    2. 修改如下內(nèi)容


      配置文件1.png

下劃線部分改成自己放置網(wǎng)站的目錄


配置文件2.png

先把前面的#號(hào)給去掉,下劃線部分改成自己放置網(wǎng)站的目錄

  1. 在Windows下開啟Nginx&PHP服務(wù)比較麻煩癌蚁,所以我們需要用到RunHiddenConsole來(lái)隱藏運(yùn)行我們的Nginx服務(wù)跟PHP服務(wù)幻梯。

    下載地址:http://www.inbeijing.org/wp-content/uploads/2015/06/RunHiddenConsole.zip

    創(chuàng)建兩個(gè) bat 文件

    start.bat

    @echo off
    REM Windows 下無(wú)效
    REM set PHP_FCGI_CHILDREN=5
    
    REM 每個(gè)進(jìn)程處理的最大請(qǐng)求數(shù)兜畸,或設(shè)置為 Windows 環(huán)境變量
    set PHP_FCGI_MAX_REQUESTS=1000
     
    echo Starting PHP FastCGI...
    RunHiddenConsole C:\Wnpm\php-7.3.7\php-cgi.exe -b 127.0.0.1:9000 -c C:\Wnpm\php-7.3.7\php.ini
     
    echo Starting nginx...
    RunHiddenConsole C:\Wnpm\nginx-1.16.0\nginx.exe -p C:\Wnpm\nginx-1.16.0
    

    stop.bat

    @echo off
    echo Stopping nginx...  
    taskkill /F /IM nginx.exe > nul
    echo Stopping PHP FastCGI...
    taskkill /F /IM php-cgi.exe > nul
    exit
    
  2. 測(cè)試php服務(wù)

    在網(wǎng)站目錄下創(chuàng)建phpinfo.php文件

    <?php
      phpinfo();
    ?>
    

    在瀏覽器打開localhost/phpinfo.php

    配置成功.png


四、安裝MySQL

借鑒自:https://www.runoob.com/mysql/mysql-install.html

  1. 下載MySQL

    地址:https://dev.mysql.com/downloads/mysql/

下載1.png
下載2.png
  1. 解壓后放到適當(dāng)?shù)奈恢美衤茫曳诺搅薔ginx跟php的同級(jí)目錄膳叨,目錄結(jié)構(gòu):


    目錄結(jié)構(gòu).png
  1. mysql-8.0.17文件夾創(chuàng)建配置文件

    [client]
    # 設(shè)置mysql客戶端默認(rèn)字符集
    default-character-set=utf8
     
    [mysqld]
    # 設(shè)置3306端口
    port = 3306
    # 設(shè)置mysql的安裝目錄
    basedir=C:\\Wnpm\\mysql-8.0.17
    # 設(shè)置 mysql數(shù)據(jù)庫(kù)的數(shù)據(jù)的存放目錄,MySQL 8+ 不需要以下配置痘系,系統(tǒng)自己生成即可菲嘴,否則有可能報(bào)錯(cuò)
    # datadir=C:\\web\\sqldata
    # 允許最大連接數(shù)
    max_connections=20
    # 服務(wù)端使用的字符集默認(rèn)為8比特編碼的latin1字符集
    character-set-server=utf8
    # 創(chuàng)建新表時(shí)將使用的默認(rèn)存儲(chǔ)引擎
    default-storage-engine=INNODB
    
  2. 給Windows添加環(huán)境變量:

環(huán)境變量.png
  1. 初始化數(shù)據(jù)庫(kù)

    mysqld --initialize --console
    
init.png
  1. 得到初始化密碼 !QsgoT9)8fS2

  2. 啟動(dòng)MySQL服務(wù)

啟動(dòng)MySQL服務(wù).png

這里有一點(diǎn)要注意:管理員運(yùn)行cmd

  1. 登陸MySQL

    mysql -h 主機(jī)名 -u 用戶名 -p
    

    參數(shù)說(shuō)明:

    • -h : 指定客戶端所要登錄的 MySQL 主機(jī)名, 登錄本機(jī)(localhost 或 127.0.0.1)該參數(shù)可以省略;
    • -u : 登錄的用戶名;
    • -p : 告訴服務(wù)器將會(huì)使用一個(gè)密碼來(lái)登錄, 如果所要登錄的用戶名密碼為空, 可以忽略此選項(xiàng)。

    因?yàn)槭潜緳C(jī)

    mysql -u root -p
    

    用剛剛得到的密碼登陸


    登陸.png

更改root的默認(rèn)密碼:


password.png

語(yǔ)法:

格式:mysqladmin -u用戶名 -p舊密碼 password 新密碼  

例子:mysqladmin -uroot -p123456 password 123  
  1. 測(cè)試MySQL

    測(cè)試代碼:

    <?php echo '<h1>Page loaded with PHP!</h1>';
    $conn = mysqli_connect('localhost', 'root', 'root');
    
    if(!$conn){
        die('<h2>Error: </h2>' . mysqli_connect_error());
    }else{
        echo '<h2>Successfully Connected to MySQL Database!</h2>';
    }
    ?>
    

    返回結(jié)果:


    成功.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末汰翠,一起剝皮案震驚了整個(gè)濱河市龄坪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌复唤,老刑警劉巖健田,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異佛纫,居然都是意外死亡妓局,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門呈宇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)好爬,“玉大人,你說(shuō)我怎么就攤上這事甥啄〈媾冢” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵蜈漓,是天一觀的道長(zhǎng)穆桂。 經(jīng)常有香客問我,道長(zhǎng)融虽,這世上最難降的妖魔是什么享完? 我笑而不...
    開封第一講書人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮有额,結(jié)果婚禮上驼侠,老公的妹妹穿的比我還像新娘。我一直安慰自己谆吴,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開白布苛预。 她就那樣靜靜地躺著句狼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪热某。 梳的紋絲不亂的頭發(fā)上腻菇,一...
    開封第一講書人閱讀 51,301評(píng)論 1 301
  • 那天胳螟,我揣著相機(jī)與錄音,去河邊找鬼筹吐。 笑死糖耸,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的丘薛。 我是一名探鬼主播嘉竟,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼洋侨!你這毒婦竟也來(lái)了舍扰?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤希坚,失蹤者是張志新(化名)和其女友劉穎边苹,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體裁僧,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡个束,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了聊疲。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片茬底。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖售睹,靈堂內(nèi)的尸體忽然破棺而出桩警,到底是詐尸還是另有隱情,我是刑警寧澤昌妹,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布捶枢,位于F島的核電站,受9級(jí)特大地震影響飞崖,放射性物質(zhì)發(fā)生泄漏烂叔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一固歪、第九天 我趴在偏房一處隱蔽的房頂上張望蒜鸡。 院中可真熱鬧,春花似錦牢裳、人聲如沸逢防。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)忘朝。三九已至,卻和暖如春判帮,著一層夾襖步出監(jiān)牢的瞬間局嘁,已是汗流浹背溉箕。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留悦昵,地道東北人肴茄。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像但指,于是被迫代替她去往敵國(guó)和親寡痰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354