02-Nginx+MySQL+PHP7
阿新 • • 發佈:2017-07-08
終端 項目 dcm read bre rod 服務 input my.cnf
【安裝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 支持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 [email protected]%‘ 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 [復制啟動腳本] $ 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
02-Nginx+MySQL+PHP7