nginx + php + mysql安裝、配置、自啓動+redis擴展

 

用過了apache就想着用用nginx,網上教程其實不少,可是受服務器版本等限制,每一個人遇到的問題也不同,先記錄下個人php

一.安裝依賴html

yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel  //一鍵安裝四個依賴

二.下載nginx的tar包mysql

//建立一個文件夾
cd /usr/local
mkdir nginx
cd nginx
//下載tar包 沒有wget命令,能夠yum -y install wget進行安裝
wget http://nginx.org/download/nginx-1.13.7.tar.gz 
//解壓
tar -xvf nginx-1.13.7.tar.gz 

三.安裝nginxlinux

//進入nginx目錄
cd /usr/local/nginx/nginx-1.13.7
//執行命令
./configure
//執行make命令,,執行後會告訴你配置文件(根目錄/conf/nginx.conf)和日誌文件位置(根目錄/logs/error.log)
make
//執行make install命令
make install

四.啓動nginx前nginx

防火牆開通8090端口,用於nginx;且服務器控制檯安全組也要開通好:firewall-cmd --zone=public --add-port=8090/tcp --permanentc++

sudo vim /usr/local/nginx/conf/nginx.confgit

由於可能apeache佔用80端口,apeache端口儘可能不要修改,咱們選擇修改nginx端口。linux 修改路徑/usr/local/nginx/conf/nginx.conf,Windows 下 安裝目錄\conf\nginx.conf。修改端口爲8090,localhost修改成你服務器ip地址。github

檢查配置是否正確:sbin目錄下:./nginx -tredis

五.啓動nginxsql

啓動代碼格式:nginx安裝目錄地址 -c nginx配置文件地址;如:[root@LinuxServer sbin]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

六.驗證,若沒法打開關閉防火牆看看是否爲防火牆問題

 

 

Nginx虛擬域名配置及測試驗證

//編輯nginx.conf
sudo vim /usr/local/nginx/conf/nginx.conf
//增長行,,,在http{}的最下面
include vhost/*.conf
//保存退出

//在/usr/local/nginx/conf目錄新建vhost文件夾
mkdir vhost
//建立每一個域名的配置
sudo vim jimisun.com.conf
//節點中增長入響應的配置 端口轉發  或者訪問文件系統

  附一下vhost.conf的內容

server {
                        listen       8090;
                        server_name  ip地址;

                        location / {
                                        index  index.html index.htm index.php;
                                        if (!-e $request_filename){
                                                        rewrite ^/(.*) /index.php last;
                                        }
                                #autoindex  on;
                        }
                        location ~ \.php$ {

                                fastcgi_pass   127.0.0.1:9000;
                                fastcgi_index  index.php;
                                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                                include        fastcgi_params;
                        }

}

  再附一下我本地使用phpstudy的域名站點配置(已經配置好了php7)

server {
        listen       80;
        server_name  www.local-cps.cn local-cps.cn;
        root   "項目的起始包含index.php文件的文件夾全路徑";
        location / {
            index  index.html index.htm index.php;
            #autoindex  on;
        }
        location ~ \.php(.*)$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }
}

Nginx重啓:

  方法一:進入nginx可執行目錄sbin下,輸入命令./nginx -s reload 便可。(./nginx -t檢查配置是否有誤)

  方法二:查找當前nginx進程號,而後輸入命令:kill -HUP 進程號 實現重啓nginx服務

查看Nginx運行情況:有結果爲正在運行,反之沒有運行。

ps -a | grep nginx

Nginx啓動:

  進入nginx可執行目錄sbin下,輸入命令./nginx  便可。

chkconfig:檢查系統的各類服務。

設置Nginx開機自啓動:

vi /etc/rc.local

  添加/usr/local/nginx/sbin/nginx便可。

  注意設置執行權限哦chmod 755 rc.local

 

PHP7(7.2.12):

一.下載依賴

目錄/usr/local下新建php文件夾,並下載php軟件包
    wget http://am1.php.net/get/php-7.2.12.tar.bz2/from/this/mirror      //注意,當心下載下來的是頁面,不然無法解壓縮,file 文件名 命令查看
安裝tar及bzip2
    yum install -y tar
    yum -y install bzip2
解壓php壓縮包:ps:若wget後的是mirror文件,則tar xjvf mirror便可
tar xjvf php-7.2.12.tar.bz2 安裝php須要的擴展: yum install libxml2 libxml2-devel openssl openssl-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libmcrypt libmcrypt-devel -y

二.開始安裝

//進入php-7.2.12目錄
    cd /usr/local/php/php-7.2.12
//執行命令,prefix安裝到指定位置
    ./configure --prefix=/usr/local/php720 --with-mysqli --with-pdo-mysql --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir --enable-simplexml --enable-xml --disable-rpath --enable-bcmath --enable-soap --enable-zip --with-curl --enable-fpm --with-fpm-user=nobody --with-fpm-group=nobody --enable-mbstring --enable-sockets --with-gd --with-openssl --with-mhash --enable-opcache --disable-fileinfo 
//編譯安裝: 
    make make install

配置nginx.conf支持php:

  打開nginx配置文件(/usr/local/nginx/conf/nginx.conf),找到localtion模塊,在index後面添加index.php,使nginx識別php文件;  

  

啓動php-fpm:

 將php-fpm.conf.default複製爲php-fpm.conf

  cd /usr/local/php720/etc

  cp php-fpm.conf.default php-fpm.conf

而後啓動php-fpm

  /usr/local/php720/sbin/php-fpm

若是啓動報錯(以下圖):

  解決方法:進入到 /usr/local/php720/etc/php-fmp.d下的www.conf.default 複製爲www.conf,而後啓動php-fpm;

進入文件夾(若是進不去,就一步步的cd進去; 若是沒有這個文件就本身建立個php-fpm.d文件夾,再進到網址下載www.conf文件:https://pan.baidu.com/s/1o8mRYkU)

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

  cp www.conf.default www.conf

解決後,先把php-fpm進程清除

  pkill php-fpm

再啓動php-fpm

  /usr/local/php720/sbin/php-fpm

最後在/usr/local/nginx/html下新建文件index.php,輸出phpinfo();

  vi index.php

運行ip,以下

 配置php-fpm自啓動:

vi /etc/rc.local

  添加/usr/local/php7012/sbin/php-fpm便可。

  注意設置執行權限哦chmod 755 rc.local

安裝後若發現php -v 和phpinfo()下的版本不一致,則是由於系統和nginx全部的php.ini目錄不一致,具體解決:

https://blog.csdn.net/feiwutudou/article/details/80049567

centos6.6下安裝mysql(5.7):

//下載 mysql的repo
  # wget https://dev.mysql.com/get/mysql57-community-release-el6-11.noarch.rpm
//安裝mysql源安裝包
  # rpm -ivh mysql57-community-release-el6-11.noarch.rpm
//安裝Mysql
    yum -y install mysql-community-server
//若報錯:Error downloading packages.....No more mirrors to try。緣由是下載包失敗,清理緩存yum clean all,再yum list,再執行yum -y install mysql-community-server,多試幾回,若仍是不行,error後再從新執行yum -y install mysql-community-server(我最後就這樣搞好的)。ps:由於鏡像下載確實慢
//啓動Mysql服務
    service mysqld start 
//設置開機啓動
    [root@localhost ~]# service enable mysqld
    [root@localhost ~]# service daemon-reload
    [root@localhost ~]# chkconfig --list

以後和centos7步驟同樣了。之因此採用el6而不是el7,是由於centos的版本不一樣,gcc太低,因此致使報錯:Requires: libstdc++.so.6(GLIBCXX_3.4.15)

 

centos7下安裝mysql(5.7):

https://blog.csdn.net/chenjiayi_yun/article/details/16920967

一.下載依賴

//CentOS7的yum源中默認是沒有mysql的。因此要先下載mysql的repo源。
//下載 mysql的repo
  # wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
//安裝mysql源安裝包
  # rpm -ivh mysql57-community-release-el7-11.noarch.rpm
//安裝這個包後,會得到兩個mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo。
//安裝Mysql
    yum -y install mysql-community-server
//啓動Mysql服務
    systemctl start mysqld
//設置開機啓動
    [root@localhost ~]# systemctl enable mysqld
    [root@localhost ~]# systemctl daemon-reload
    [root@localhost ~]# chkconfig --list

修改mysql root本地登陸密碼

  mysql安裝完成以後,在/var/log/mysqld.log文件中給root生成了一個臨時的默認密碼。[root@localhost ~]# more /var/log/mysqld.log,也可以使用cat查看

臨時密碼:in1N=ERmABRb

登錄mysql並修改密碼:mysql -u root -pin1N=ERmABRb,報錯的話可使用mysql -u root -p即不適用明文登入

//登入
$ mysql -u root -pin1N=ERmABRb
//修改密碼爲Aaa2019.cn
mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY 'Aaa2019.cn';
Query OK, 0 rows affected (0.00 sec)
//注意, mysql5.7默認密碼策略要求密碼必須是大小寫字母數字特殊字母的組合,至少8位

設置容許遠程登陸  

//Mysql默認不容許遠程登陸,咱們須要設置下,而且防火牆開放3306端口;
    mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Aaa2019.cn' WITH GRANT OPTION;
//返回
    Query OK, 0 rows affected, 1 warning (0.01 sec)
//退出
    mysql> exit;


//設置端口
    [root@localhost ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
//返回
    success
//重啓防火牆
    [root@localhost ~]# firewall-cmd --reload


    

  若是是阿里雲服務器:須設置安全組配置,開放3306端口,容許遠程鏈接

賦予文件權限chmod -R 777 *

查看配置

# cat /etc/my.cnf

在這裏錯誤日誌的位置都有。

附mysql7.3.23的安裝:

一.下載依賴

  下載mysql:https://dev.mysql.com/downloads/cluster/7.3.html

  

wget https://dev.mysql.com/get/Downloads/MySQL-Cluster-7.3/mysql-cluster-gpl-7.3.23-linux-glibc2.12-x86_64.tar.gz
//解壓:
    tar -xvzf mysql-cluster-gpl-7.3.23-linux-glibc2.12-x86_64.tar.gz
//重命名:
    mv mysql-cluster-gpl-7.3.23-linux-glibc2.12-x86_64 mysql-7.3.23
//複製命名後的目錄
    cp -r mysql-7.3.23 /usr/local/mysql7323

//添加用戶組和用戶:
    cd /usr/local/mysql7323
    #添加用戶組
    groupadd mysql
//#添加用戶mysql 到用戶組mysql
    useradd -g mysql mysql

//建立mysql數據目錄,新目錄不存在則建立:
    mkdir ./data/mysql  或 mkdir /usr/local/mysql7323/data/mysql
//mysql安裝根目錄下修改目錄權限:
    chown -R mysql:mysql ./

初始化數據庫:(注意路徑)

  ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql7323 --datadir=/usr/local/mysql7323/data

問題報錯:提示沒有安裝perl,緣由:缺乏perl模塊中的Data::Dumper

  

  yum -y install autoconf  //安裝autoconf庫(此包安裝時會安裝Data:Dumper模塊)

 再次執行初始化報錯:緣由:缺乏libaio庫文件

  

  解決方法:yum install libaio* -y

  再次執行初始化ok

//修改權限爲root權限:
    chown -R root:root .
    chown -R mysql:mysql data

//添加啓動服務:
    cp support-files/mysql.server /etc/init.d/mysql
    #修改啓動腳本
    vi /etc/init.d/mysqld
    #修改項:
    basedir=/usr/local/mysql/
    datadir=/usr/local/mysql/data/mysql

啓動mysql服務:

  service mysqld start

  報錯,提示無權限

  

  解決方法:chmod a+wrx /etc/init.d/mysqld

redis擴展:  

 

//先下載phpredis-develop
    cd /tmp
    wget https://codeload.github.com/phpredis/phpredis/zip/develop

//安裝unzip、zip解壓工具
    yum -y install unzip zip

//解壓
    unzip develop
//解壓後會多了個phpredis-develop的目錄。進入目錄
    cd phpredis-develop
//安裝phpize模塊
    yum -y install php-devel
//執行phpize
    sudo phpize
//查找php-config路徑
    find / -name php-config
    //例如:個人是:/usr/local/php720/bin/php-config

//配置環境
    ./configure --with-php-config=/usr/local/php720/bin/php-config
//編譯安裝
    sudo make && make install
    //成功後會告訴你生成的redis.so擴展文件在哪一個目錄
    //Installing shared extensions:     /usr/local/php720/lib/php/extensions/no-debug-non-zts-20170718/

 配置php的redis:

vim /usr/local/php720/lib/php.ini
    extension= /usr/local/php720/lib/php/extensions/no-debug-non-zts-20170718/redis.so

//ok
//解決後,先把php-fpm進程清除
    pkill php-fpm
//再啓動php-fpm
    /usr/local/php720/sbin/php-fpm

//防火牆端口:
    firewall-cmd --zone=public --add-port=6379/tcp --permanent

  

注意,linux下php7中若找不到php配置文件php.ini

解決方法:首先須要說明的是,若是你的php是編譯安裝的,那麼默認是沒有php.ini的,你必須自行去源碼包裏邊拷貝。運行phpinfo()命令能夠看到php指定的配置文件路徑,把配置文件放到這個路徑中便可。

 安裝redis服務:

 傳送

坑1.

另附一下之前使用tp3.2框架時的坑

解決方法:

if (!-e $request_filename) {   rewrite  ^(.*)$  /index.php?s=$1  last;   break;    }

 

坑2.

若報‘403 Forbidden’,則是由於nginx.conf沒有找到指定文件,文件以下圖

 若要開啓nginx目錄瀏覽功能,只需將autoindex on前面的#去掉便可

 

整體來講,nginx確實是首選服務器,抗併發要強於apache(apache是阻塞的,nginx是異步非阻塞);apache模塊比較多,穩定,可是配置複雜。相對nginx就簡潔,bug比較多了;支持負載均衡;併發量在50000左右;固然還有其餘優點和劣勢,先這樣吧,之後再繼續研究

 fileInfo擴展:

find / -name phpize//找到php安裝目錄下的phpize的路徑
//在/usr/local/php/php-7.2.12/ext/fileinfo源文件下執行如下操做:
/usr/local/php-install/bin/phpize
./configure --with-php-config=/usr/local/php-install/bin/php-config//爲php安裝路徑
make && make install
vim /usr/local/php-install/lib/php.ini
修改extension=fileInfo前面的分號去掉,保存後重啓php-fpm便可
相關文章
相關標籤/搜索