02-Nginx+MySQL+PHP7

【安裝Nginx】
#先安裝以下包
yum install gcc gcc-c++ kernel-devel
yum -y install pcre-devel openssl openssl-devel

#解壓nginx-1.12.0.tar.gz  而後進入目錄
./configure --prefix=/usr/local/nginx --with-http_stub_status_module

make && make install

【安裝MySQL】
#先安裝以下包:
yum -y install make gcc-c++ cmake bison-devel  ncurses-devel

#解壓mysql-5.6.14.tar.gz 而後進入目錄
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

make && make install


【安裝PHP】
#先安裝以下包:
yum install -y gcc gcc-c++  make zlib zlib-devel pcre pcre-devel  libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers

#解壓php-7.1.6.tar.gz 而後進入目錄
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php --enable-mbstring --enable-ftp --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-pear --enable-sockets --with-freetype-dir=/usr --enable-gd-native-ttf --with-zlib --with-libxml-dir=/usr --with-xmlrpc --enable-zip --enable-fpm --enable-xml --enable-sockets --with-gd --with-zlib --with-iconv --enable-zip --with-freetype-dir=/usr/lib/ --enable-soap --enable-pcntl --enable-cli --with-curl

make && make install

 

說明:Nginx、MySQL、PHP7 的編譯安裝命令參考安裝包內的command.txt,全部的操做須要在root用戶下執行。
 
【編譯安裝Nginx以後】   
$ /usr/local/server/nginx/sbin/nginx              #啓動Nginx
$ /usr/local/server/nginx/sbin/nginx -s stop      #斷開Nginx
$ /usr/local/server/nginx/sbin/nginx -s reload    #重啓Nginx
$ ps -ef | grep nginx  或者 ps -A | grep -i nginx #查看是否成功啓動nginx
 

 

[配置Nginx支持PHP]
進入 /usr/local/nginx/conf,將nginx.conf 複製一份備用,而後修改 nginx.conf:
1)index  index.html index.htm; 改成:
index  index.html index.htm index.php;
 
 
(2)#location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
#}
改成:
 
location ~ \.php$ {
        #    root           html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
}
 
[開啓Nginx的目錄文件列表功能]
http {
include       mime.types;
default_type  application/octet-stream;
    #------ 開啓Nginx的目錄文件列表功能  -----#
    autoindex on; #自動顯示目錄 autoindex_exact_size off; #人性化方式顯示文件大小不然以byte顯示 autoindex_localtime on; #按服務器時間顯示,不然以gmt時間顯示
    ...
}

 

[配置虛擬主機]
server {
listen 80;
    server_name centos.a.com;
    root /usr/local/nginx/html/test;
    charset utf-8;
  # access_log /logs/admin_access.log;
  # error_log  /logs/admin_error.log;
    index index.php index.html;
 
  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;
  }
}
 
而後在 /etc/hosts 中添加: 127.0.0.1  centos.a.com

 

 
 
[配置nginx 支持ThinkPHP] ------未驗證
在 nginx 下面用 ThinkPHP 作開發,每次輸入相似 /test/tp/index.php/Index/index 的 URI ,提示沒有找到該頁
原來 nginx 原來不支持 pathinfo 模式,須要本身配置。在配置文件的 server 塊中,加入如下內容:
location /qgzs_apiv2/app/ { 
    index index.php; 
    if (!-e $request_filename) { 
        rewrite ^/qgzs_apiv2/app/(.*)$/qgzs_apiv2/app/index.php/$1 last; 
        break; 
   } 
} 
location ~ .+\.php($|/) { 
    set $script $uri; 
    set $path_info "/"; 
    if ($uri ~ "^(.+\.php)(/.+)") { 
        set $script     $1; 
        set $path_info  $2; 
    } 
     
    fastcgi_pass 127.0.0.1:9000; 
    fastcgi_index index.php?IF_REWRITE=1; 
    include fastcgi_params; 
    fastcgi_param PATH_INFO $path_info; 
    fastcgi_param SCRIPT_FILENAME $document_root/$script; 
    fastcgi_param SCRIPT_NAME $script; 
}  
 

 

其中 /qgzs_apiv2/app/ 是項目的路徑,保存配置以後,重啓 nginx ,配置成功。
直接支持相似於 /Index.html 這樣的僞靜態模式。
 
 
 
【編譯安裝MySQL以後】
編譯安裝大約須要30分鐘,以後做以下配置:
 
[設置權限]
使用下面的命令查看是否有mysql用戶及用戶組
$ cat /etc/passwd    #查看用戶列表
$ cat /etc/group     #查看用戶組列表
 
若是沒有就建立
$ groupadd mysql
$ useradd -g mysql mysql
 
修改/usr/local/mysql權限
$ chown -R mysql:mysql /usr/local/mysql
 
[初始化配置]
進入安裝路徑, 執行初始化配置腳本,建立系統自帶的數據庫和表:
$ cd /usr/local/mysql
$ scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
 
若是安裝失敗,若出現Can't locate Data/Dumper.pm in @INC (@INC contains: ... ,解決以下:
$ yum install 'perl(Data::Dumper)'
 
注:對/etc/my.cnf重命名爲/etc/my.cnf.bak,而後拷貝服務腳本到init.d目錄,並設置開機啓動:
$ cp support-files/mysql.server /etc/init.d/mysql
$ chkconfig mysql on
$ service mysql start    #啓動MySQL
 
[配置用戶]
須要先設置PATH,要不不能直接調用mysql.修改/etc/profile文件,在文件末尾添加:
PATH=/usr/local/mysql/bin:$PATH
export PATH
 
關閉文件,運行下面的命令,讓配置當即生效:
$ source /etc/profile
 
如今,在終端內直接輸入mysql便可進入:
$ mysql -uroot
mysql> SET PASSWORD = PASSWORD('123456');
 
若要設置root用戶能夠遠程訪問,執行
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.16.%' IDENTIFIED BY '123456' WITH GRANT OPTION;
 
[配置防火牆]
防火牆的3306端口默認沒有開啓,若要遠程訪問,須要開啓這個端口。打開/etc/sysconfig/iptables:
在「-A INPUT –m state --state NEW –m tcp –p –dport 22 –j ACCEPT」,下添加:
-A INPUT -m state --state NEW -m tcp -p -dport 3306 -j ACCEPT
而後保存,並關閉該文件,在終端內運行下面的命令,刷新防火牆配置:
$ service iptables restart
 
 OK,一切配置完畢,而後能夠訪問MySQL了!
 
 
 
【編譯安裝PHP7以後】
編譯安裝大約須要20分鐘,以後在以前編譯的源碼包中,找到 php.ini-production:
$ cp php.ini-production /usr/local/php/php.ini
[設置讓PHP錯誤信息打印在頁面上] 
$ vim /usr/local/php/php.ini 
display_errors = On
 
[複製啓動腳本]
$ cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
$ chmod +x /etc/init.d/php-fpm
 
[修改php-fpm配置文件]
$ cd /usr/local/php/etc
$ cp php-fpm.conf.default php-fpm.conf
而後,vim php-fpm.conf 編輯配置文件:
① 去掉 pid = run/php-fpm.pid 前面的分號
② 修改user和group的用戶爲當前用戶
③  pm.max_children = 50
    pm.start_servers = 20
    pm.min_spare_servers = 5
    pm.max_spare_servers = 35
而後保存退出。
 
[啓動php-fpm]
$ /etc/init.d/php-fpm start  #php-fpm啓動命令
$ /etc/init.d/php-fpm stop        #php-fpm退出命令
$ ps -ef | grep php 或者 ps -A | grep -i php  #查看是否已經成功啓動PHP
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息