Linuxcentos系统安装php-fpmNginx时出现问题Failedtostart。
。。
前⾔:
⾃⼰在Linux centos7 系统下配置了Nginx服务器和php-fpm。⼀开始也是看⽹上的教程,⾃⼰敲代码。不能说别⼈分享的不对,怎么的,只能说每个⼈的系统不⼀样,环境也不⼀样。在安装的过程中,这样那样的错误也总常在。所以,我这篇博客,也不是都适⽤每个⼈。只是把⾃⼰的问题分享给⼤家,当⼤家出现类似的问题的时候,能到共鸣,不⾄于绝望,搞着搞着就不想弄了,在程序员这条路上,我们会有各种各样的问题,也改不完的bug。所以,⼼态放好,遇到问题了,就分析问题的所在。⽽不是⼀味的百度什么的,只有到问题的核⼼点,才能到精准的解决办法,进⽽问题才能得以快速解决。---这个是我⾃⼰感悟。不能碰到什么问题都想都不想百度,这样效率低,还得不到解决。
背景:⼩程序:中⽟⽟器微商平台。由于这个项⽬业务扩充,原有的服务器不⾜以完成现在需求。需要更⼤的空间和响应速度,原由服务器都不能满⾜。
原项⽬架构:Apache(2.4.9)+PHP(5.5.12)+MySQL(5.6.17);现改:Nginx+PHP(7.0.0)+MySQL;
问题:
(代码⽐较多,请耐⼼看下去)
1:Nginx服务器搭建:(部分报错错误,忘记了)
⽹上教程很多,这⾥不⼀⼀赘述。直接讲遇到问题;
报错nginx.service不存在
1) /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/f
# 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/f"
lockfile=/var/lock/subsys/nginx
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
2、PHP-FPM搭建:PHP -v 是有版本信息的。如下:
php -v
PHP 7.0.0 (cli) (built: Jun 19 2018 08:56:00) ( NTS )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies
执⾏;service php-fpm start  报错
1)Redirecting to /bin/systemctl start php-fpm.service Failed to start php-fpm.service: Unit not found.
执⾏:systemctl start php-fpm  报错
2)Failed to start php-fpm.service: Unit not found.
执⾏:systemctl status php-fpm.service 报错
3)Unit php-fpm.service could not be found.
所有这个都提⽰:php-fpm.service 没有到。那因为就是因为不存在。于是从⽹上到了如下代码:php-fpm.service:
[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target
[Service]
Type=simple
PIDFile=/run/php-fpm.pid
ExecStart=/usr/local/php7/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php/f ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID
[Install]
WantedBy=multi-user.target
然后结果还是不对,上⾯的代码或许放在你们那就是能⽤的。
报错如下:
systemctl status php-fpm.service
● php-fpm.service - The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor pre                                                                                                            set: disable    Active: failed (Result: exit-code) since Tue 2018-06-19 13:28:16 CST; 16s ago
Process: 12583 ExecStop=/bin/kill -SIGINT $MAINPID (code=exited, status=1/FAIL                                                                                                            URE)
Process: 12581 ExecStart=/usr/local/php7/sbin/php-fpm --nodaemonize --fpm-conf                                                                                                            ig /usr/lo  Main PID: 12581 (code=exited, status=203/EXEC)
Jun 19 13:28:16 vm10-0-0-19.ksc kill[12583]: -q, --queue <sig>      use ...)
Jun 19 13:28:16 vm10-0-0-19.ksc kill[12583]: -p, --pid             
Jun 19 13:28:16 vm10-0-0-19.ksc kill[12583]: -l, --list [=<signal>]
Jun 19 13:28:16 vm10-0-0-19.ksc kill[12583]: -L, --table            s
Jun 19 13:28:16 vm10-0-0-19.ksc kill[12583]: -h, --help   
Jun 19 13:28:16 vm10-0-0-19.ksc kill[12583]: -V, --version 
Jun 19 13:28:16 vm10-0-0-19.ksc kill[12583]: For more details see kill(1).
Jun 19 13:28:16 vm10-0-0-19.ksc systemd[1]: php-fpm.service: control pro (1)
Jun 19 13:28:16 vm10-0-0-19.ksc systemd[1]: Unit php-fpm.
Jun 19 13:28:16 vm10-0-0-19.ksc systemd[1]: php-fpm.service failed.
Hint: Some lines were ellipsized, use -l to show in full
ERROR: unable to bind listening socket for address '127.0.0.1:9000': Address already in use (98)
[19-Jun-2018 16:17:46] ERROR: FPM initialization failed
failed因为这个  php7 这个⽂件再/usr/local下不存在。⽽我的是php ⽽不是php7.所有请注意;
原因:因为这个  php7 这个⽂件再/usr/local下不存在。⽽我的是php ⽽不是php7.所有请注意;
改正后:[Unit]部分主要是对这个服务的说明,内容包括Description和After,Description⽤于描述服务,After⽤于描述服务类别
[Unit]
Description=php-fpm
After=syslog.target network.target
[Service]
Type=forkingexited
PIDFile=/var/run/php-fpm.pid
ExecStart=/usr/local/php/sbin/php-fpm
ExecReload=/bin/kill -USR2 MAINPIDExecStop=/bin/kill−INTMAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
我不明⽩为什么上⾯的description 改成 php-fpm后,还是不⾏,以及为甚么php-fpm不可以?希望懂的⼈,能给我解析⼀下
关于php-fpm.service 最终的代码内容:
[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target
[Service]
Type=simple
PIDFile=/run/php-fpm.pid
ExecStart=/usr/local/php/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php/f
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID
[Install]
WantedBy=multi-user.target

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。