1. 程式人生 > >CentOS LA(N)MP

CentOS LA(N)MP

密碼登錄 win his ast ram str tar header 檢查

CentOS 安裝 PHP7

  • 下載HongKong

  • tar -zxvf mirror

  • 安裝相關的編譯器sudo yum install g++ gcc libxml2-devel

  • 編譯安裝 php

    首先進入 解壓後的php 文件夾
    安裝配置:

    ./configure --prefix=/usr/local/php --enable-fpm

  • 如果沒有報錯就可以編譯 編譯安裝

make && make install

  • 配置一條軟鏈接

    sudo ln -sv /usr/local/php7/bin/php /usr/bin/php

  • 測試如下:

    [php-7.2.1] php -v 
    PHP 7.2.1 (cli) (built: Jan 21 2018 07:36:15) ( NTS )
    Copyright (c) 1997-2017 The PHP Group
    Zend Engine v3.2.0, Copyright (c) 1998-2017 Zend Technologies

CentOS 安裝 MySQL5.7

  • 配置YUM源

    在MySQL官網中下載YUM源rpm安裝包

    技術分享圖片

  • 下載mysql源安裝包

    wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

    安裝mysql源

    yum localinstall mysql57-community-release-el7-8.noarch.rpm

  • 檢查mysql源是否安裝成功

    yum repolist enabled | grep "mysql.*-community.*"

    技術分享圖片

    如上則說明源安裝成功,

  • 選擇要安裝的版本

    sudo vim /etc/yum.repos.d/mysql-community.repo

    技術分享圖片

    其中enabled=1表示將被安裝及更新。

  • 開始安裝

    yum install mysql-community-server

  • 啟動MySQL服務

    sudo systemctl start mysqld

    查看服務狀態

    sudoi systemctl status mysqld

  • 設置守護進程,以便開機啟動服務

    sudo systemctl enable mysqld
    sudo systemctl daemon-reload

  • 修改root本地登錄密碼

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

    使用獲取的臨時密碼登錄更改root用戶密碼

    ALTER USER ‘root‘@‘localhost‘ IDENTIFIED BY ‘xxxxxxx‘;

    或者

    set password for ‘root‘@‘localhost‘=password(‘xxxxxxx‘);

    當然上述的密碼肯定是不會通過的。mysql5.7默認安裝了密碼安全檢查插件(validate_password),默認密碼檢查策略要求密碼必須包含:大小寫字母、數字和特殊符號,並且長度不能少於8位。否則會提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

    密碼校驗規則如下SHOW variables LIKE ‘%password%‘;

    技術分享圖片

    • validate_password_policy
      密碼策略,默認為MEDIUM策略

    • validate_password_dictionary_file
      密碼策略文件,策略為STRONG才需要

    • validate_password_length
      密碼最少長度

    • validate_password_mixed_case_count
      大小寫字符長度,至少1個

    • validate_password_number_count
      數字至少1個

    • validate_password_special_char_count
      特殊字符至少1個

    • 共有以下幾種密碼策略:

    策略 檢查規則
    0 or LOW Length
    1 or MEDIUM Length; numeric, lowercase/uppercase, and special characters
    2 or STRONG Length; numeric, lowercase/uppercase, and special characters; dictionary file
    • MySQL官網密碼策略詳細說明
  • 修改密碼策略

    在/etc/my.cnf文件添加validate_password_policy配置,指定密碼策略

    # 選擇0(LOW),1(MEDIUM),2(STRONG)其中一種,選擇2需要提供密碼字典文件
    validate_password_policy=0

    如果不需要密碼策略,添加my.cnf文件中添加如下配置禁用即可:

    validate_password = off

    重新啟動mysql服務使配置生效:

    sudo systemctl restart mysqld
  • 添加遠程登錄用戶

    默認只允許root帳戶在本地登錄,如果要在其它機器上連接mysql,必須修改root允許遠程連接,或者添加一個允許遠程連接的帳戶,為了安全起見,我添加一個新的帳戶:

    GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
  • 更改默認字符編碼

    • 查看默認的編碼是什麽
    SHOW variables LIKE '%character%';

    技術分享圖片

    • 更改

      修改/etc/my.cnf配置文件,在[mysqld]下添加編碼配置,如下所示:

    [mysqld]
    character_set_server=utf8
    init_connect='SET NAMES utf8'
    • 重啟服務,後查看字符集的變化

      技術分享圖片

    • 默認配置文件路徑:
    • 配置文件:
      /etc/my.cnf
    • 日誌文件:
      /var/log//var/log/mysqld.log
    • 服務啟動腳本:
      /usr/lib/systemd/system/mysqld.service
    • socket文件:
      /var/run/mysqld/mysqld.pid

    • 每次修改完配置文檔後,都需要重啟服務以生效!

CentOS 安裝 Apache2

  • 從這裏下載

    技術分享圖片

    wget http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.29.tar.gz

    cd httpd-2.4.29

  • 編譯安裝

    ./configure --prefix=/usr/local/apache2
    • 沒有apr和apr-until

      技術分享圖片

      cd
      wget http://oss.aliyuncs.com/aliyunecs/onekey/apache/apr-1.5.0.tar.gz
      wget http://oss.aliyuncs.com/aliyunecs/onekey/apache/apr-util-1.5.3.tar.gz
      tar zxvf apr-1.5.0.tar.gz
      tar zxvf apr-util-1.5.3.tar.gz
      mv apr-1.5.0 apr
      mv apr-util-1.5.3 apr-util
      mv apr apr-util httpd-2.4.29/srclib/
      
      [~] tree -L 1 httpd-2.4.29/srclib
      httpd-2.4.29/srclib
      ├── apr
      ├── apr-util
      └── Makefile.in
      
      # 安裝依賴
      wget https://sourceforge.net/projects/pcre/files/pcre/8.38/pcre-8.38.tar.gz
      tar -zxf pcre-8.38.tar.gz
      cd pcre-8.38/
      ./configure --prefix=/usr/local/pcre-8.38
      make
      sudo make install
    • 所有的依賴完成,開始編譯Apache2

      cd httpd-2.4.29
      ./configure --prefix=/usr/local/apache -with-pcre=/usr/local/pcre-8.38/bin/pcre-config \ 
      --with-included-apr
      make
      sudo make install
  • 驗證

    cd /usr/local/apache/bin/
    sudo ./apachectl -k start

    可能會出現錯誤如下:

    [bin] sudo ./apachectl -k start
    [sudo] whoami 的密碼:
    AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message

    這是一個配置虛擬主機的問題,可以暫時不用管!此時應當開啟服務器的80端口先!

    [bin] sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
    success
    [bin] sudo systemctl restart firewalld.service # 重啟防火墻

    最後在本地機器中訪問虛擬機

    技術分享圖片

CentOS 安裝 NGINX

  • nginx源碼包(nginx.org)

    wget http://nginx.org/download/nginx-1.10.1.tar.gz

    tar -zxvf nginx-1.10.1.tar.gz

    ./configure --prefix=/usr/local/nginx --with-pcre=../pcre-8.38

    pcre源碼目錄使用相對路徑,因為一開始下載在root目錄之下了,使用絕對路徑有權限問題!

    make
    make install

  • 安裝驗證

    技術分享圖片

    ps命令查看一下apache ,httpd,已經有進程在為apache工作了,用暴力的方式殺掉已啟動的apache進程

    • 啟動

      sudo ./nginx

      技術分享圖片
      ?

  • 安裝php-fpm

    技術分享圖片

    啟動fpm 提示125錯誤

    技術分享圖片

    找到125行,普通模式下:125得到這一行include=/usr/local/php7/etc/php-fpm.d/*.conf

    說明目錄/usr/local/php7/etc/php-fpm.d/之下沒有符合規則的文件

技術分享圖片

繼續安裝`sudo ./php-fpm`
  • 配置NGINX-PHP

    [sbin] cd /usr/local/nginx/conf     # 配置文件存放目錄
    [conf] ll
    總用量 60
    -rw-r--r--. 1 root root 1077 1月  21 11:08 fastcgi.conf
    -rw-r--r--. 1 root root 1077 1月  21 11:08 fastcgi.conf.default
    -rw-r--r--. 1 root root 1007 1月  21 11:08 fastcgi_params
    -rw-r--r--. 1 root root 1007 1月  21 11:08 fastcgi_params.default
    -rw-r--r--. 1 root root 2837 1月  21 11:08 koi-utf
    -rw-r--r--. 1 root root 2223 1月  21 11:08 koi-win
    -rw-r--r--. 1 root root 3957 1月  21 11:08 mime.types
    -rw-r--r--. 1 root root 3957 1月  21 11:08 mime.types.default
    -rw-r--r--. 1 root root 2656 1月  21 11:08 nginx.conf
    -rw-r--r--. 1 root root 2656 1月  21 11:08 nginx.conf.default
    -rw-r--r--. 1 root root  636 1月  21 11:08 scgi_params
    -rw-r--r--. 1 root root  636 1月  21 11:08 scgi_params.default
    -rw-r--r--. 1 root root  664 1月  21 11:08 uwsgi_params
    -rw-r--r--. 1 root root  664 1月  21 11:08 uwsgi_params.default
    -rw-r--r--. 1 root root 3610 1月  21 11:08 win-utf

    sudo vim nginx.conf

    技術分享圖片

    在server之中添加這麽一段:

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    
    location ~ \.php$ {
        root /usr/local/nginx/html;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        index index.php;
    }

    保存退出即可。這麽一段的意思是如果有本機訪問php文件,通過是9000端口。

  • 測試在html目錄中新建index.php其內容如下

    技術分享圖片

  • 建立一個軟鏈接sudo ln -sv /usr/local/nginx/sbin/nginx /usr/bin/nginx

    重啟服務sudo ./nginx -s reload

    技術分享圖片

FPM 配置

  • 進行配置文件存放目錄

    cd /usr/local/php7/etc/php-fpm.d

  • 查看配置文件cat www.conf

    • 子進程用戶和用戶組

      user = nobody
      group = nobody

      技術分享圖片

    • 子進程數量

      pm = dynamic 設置靜態還是動態解析
      pm.max_children = 5 最大子進程數
      pm.start_servers = 2 啟動時先啟動兩個進程

      當為static靜態時,子進程數量永遠是固定的即為pm.start_servers

CentOS LA(N)MP