1. 程式人生 > >centos7下部署執行一個php專案

centos7下部署執行一個php專案

因為要做web方向的測試,所以選擇了一個測試網站addressbook.

這個網站是用php開發的,以前沒有接觸過php,那麼就那這個專案開刀,先將它部署,也記錄一下我遇到的問題,大家少走彎路。

Nginx + php-fpm +centos7

首先我先要在chrome上開啟,但是伺服器站點部署在linux上,而chrome裝在windows上,所以選擇橋接模式。

Centos7橋接模式設定:

首先選擇 橋接模式

ip addr 獲取虛擬機器ip地址

關閉虛擬機器防火牆

systemctl stop firewalld.service

禁止fireware開機啟動

systemctl disable firewalld.service 

ping xxxx

剛開始啟動nginx時一直報錯,最後發現是端口占用問題,解除80端口占用。

先檢視80埠是否被佔用,然後啟動nginx

  • 檢視所有端口占用
  • netstat -tln
  • 檢視埠被哪個程序佔用
  • lsof -i:埠號
  • 殺死被佔用埠
  • kill 埠號

接著啟動nginx:

 /usr/local/nginx/sbin/nginx

檢查是否啟動成功:

開啟瀏覽器訪問此機器的 IP,如果瀏覽器出現 Welcome to nginx! 則表示 Nginx 已經安裝並執行成功。

為了方便可以進行配置以採用以下命令啟動:

service nginx reload    重新載入配置

service nginx start 啟動Nginx

如果nginx啟動失敗,就先強行殺死nginx程序:

pkill nginx
但是每次要進行到相應的路徑來啟動Nginx太麻煩了,這裡可以在etc/init.d目錄下建立一個啟動指令碼,通過這個指令碼來啟動Nginx,這樣啟動Nginx會方便很多
在etc/init.d目錄下建立nginx指令碼
vim /etc/init.d/nginx
#!/bin/sh

#

# nginx - this script starts and stops the nginx daemin

#

# chkconfig:  - 85 15

# description:  Nginx is an HTTP(S) server, HTTP(S) reverse \

#              proxy and IMAP/POP3 proxy server

# processname: nginx

# config:      /usr/local/nginx/conf/nginx.conf

# pidfile:    /usr/local/nginx/logs/nginx.pid

# Source function library.

. /etc/rc.d/init.d/functions

# Source networking configuration.

. /etc/sysconfig/network

# Check that networking is up.

[ "$NETWORKING" = "no" ] && exit 0

nginx="/usr/local/nginx/sbin/nginx"

prog=$(basename $nginx)

NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"

lockfile=/var/lock/subsys/nginx

start() {

[ -x $nginx ] || exit 5

[ -f $NGINX_CONF_FILE ] || exit 6

echo -n $"Starting $prog: "

daemon $nginx -c $NGINX_CONF_FILE

retval=$?

echo

[ $retval -eq 0 ] && touch $lockfile

return $retval

}

stop() {

echo -n $"Stopping $prog: "

killproc $prog -QUIT

retval=$?

echo

[ $retval -eq 0 ] && rm -f $lockfile

return $retval

}

restart() {

configtest || return $?

stop

start

}

reload() {

configtest || return $?

echo -n $"Reloading $prog: "

killproc $nginx -HUP

RETVAL=$?

echo

}

force_reload() {

restart

}

configtest() {

$nginx -t -c $NGINX_CONF_FILE

}

rh_status() {

status $prog

}

rh_status_q() {

rh_status >/dev/null 2>&1

}

case "$1" in

start)

rh_status_q && exit 0

$1

;;

stop)

rh_status_q || exit 0

$1

;;

restart|configtest)

$1

;;

reload)

rh_status_q || exit 7

$1

;;

force-reload)

force_reload

;;

status)

rh_status

;;

condrestart|try-restart)

rh_status_q || exit 0

;;

*)

echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"

exit 2

esac

作者:ayuLiao
連結:https://www.jianshu.com/p/495a02eb2672
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。

我們啟動php-fpm,並設定php-fpm開機自啟

service php-fpm start

chkconfig php-fpm on

nginx配置檔案地址路徑:

vim /usr/local/nginx/conf/nginx.conf

php-fpm配置

vim /etc/php-fpm.d/www.conf
[...]
listen = /var/run/php-fpm/php-fpm.sock
[...]
listen.owner = nobody
listen.group = nobody
[...]
user = nginx
group = nginx
[...]

編輯nginx配置檔案:vim /etc/nginx/nginx.conf

server {
 28         listen 80;
 29         server_name _;
 30         root /usr/addressbook;
 31         index index.php index.html index.htm;
 32 
 33         location / {
 41              try_files $uri $uri/ =404;
 42         }
 43         location ~ \.php$ {
 44         try_files $uri =404;
 45         fastcgi_pass 127.0.0.1:9000;
 46         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 47         fastcgi_index index.php; include fastcgi_params;
 48         }
 49     }
 50 }

同時php-fpm配置檔案也要更改:

listen =/var/run/php-fpm/php-fpm.sock
listen = 127.0.0.1:9000

重新載入:

systemctl reload php-fpm

在這裡插入圖片描述

好啦,大功告成,現在我要去配置資料庫啦~~~

大家有什麼關於web測試或者MBT的想法可以一起交流呀