[TOC]
0x00 快速入门 描述:1)LNMP是目前互联网主流的WEB服务器架构,主要是由Linux+Nginx+MYSQL|Mariadb+PHP
组合,可以发布企业门户网站代码(PHP动态网页),运维人员要能够独立构建LNMP平台。
Nginx 是一个web服务器和代理服务器(其功能是负载均衡,正反向代理)
Mysql 是一个关系型数据库已经被Oracle收购
php-fpm 是一个FastCGI Process Manager(FastCGI进程管理器)
在Linux中安装软件常见的三种方式就是yum安装、rpm包或者源码
编译安装;
0x01 YUM手动安装LNMP 安装环境:Centos 7 安装方法:yum
Step 1.安装LNMP之前要安装EPEL,以便安装源以外的软件,如Nginx,phpMyAdmin等。 提示:EPEL即Extra Packages for Enterprise Linux,企业版linux附加包;这个软件仓库里有很多非常常用的软件,而且是专门针对RHEL设计的,对RHEL标准yum源是一个很好的补充,完全免费使用,由Fedora项目维护,所以如果你使用的是RHEL,或者CentOS,Scientific等RHEL系的linux,可以非常放心的使用EPEL的yum源。
[TOC]
0x00 快速入门 描述:1)LNMP是目前互联网主流的WEB服务器架构,主要是由Linux+Nginx+MYSQL|Mariadb+PHP
组合,可以发布企业门户网站代码(PHP动态网页),运维人员要能够独立构建LNMP平台。
Nginx 是一个web服务器和代理服务器(其功能是负载均衡,正反向代理)
Mysql 是一个关系型数据库已经被Oracle收购
php-fpm 是一个FastCGI Process Manager(FastCGI进程管理器)
在Linux中安装软件常见的三种方式就是yum安装、rpm包或者源码
编译安装;
0x01 YUM手动安装LNMP 安装环境:Centos 7 安装方法:yum
Step 1.安装LNMP之前要安装EPEL,以便安装源以外的软件,如Nginx,phpMyAdmin等。 提示:EPEL即Extra Packages for Enterprise Linux,企业版linux附加包;这个软件仓库里有很多非常常用的软件,而且是专门针对RHEL设计的,对RHEL标准yum源是一个很好的补充,完全免费使用,由Fedora项目维护,所以如果你使用的是RHEL,或者CentOS,Scientific等RHEL系的linux,可以非常放心的使用EPEL的yum源。1 2 yum update -y && yum upgrade -y yum install epel-release
Step 2.yum update1 2 3 yum install nginx systemctl start nginx systemctl enable nginx
Step 3.安装PHP1 yum install -y php php-devel php-fpm php-mysql php-common php-devel php-gd libjpeg* php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-bcmath php-mhash libmcrypt libmcrypt-devel
Step 4.开启php-fpm1 2 systemctl start php-fpm systemctl enable php-fpm
Step 5.安装mysql CentOS 7的yum源中貌似没有正常安装mysql时的mysql-sever文件,需要去官网上下载(也可以参照网站上的)1 2 3 # wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm # rpm -ivh mysql-community-release-el7-5.noarch.rpm # yum install mysql-community-server
成功安装之后重启mysql服务1 2 3 4 5 6 初次安装mysql是root账户是没有密码的设置密码的方法 mysql> set password for 'root' @'localhost' = password('mypasswd' ); mysql> exit
Step 6.配置PHP/nginx参数
A) 修改php.ini的配置
1 2 3 4 5 6 7 8 vim /etc/php.ini cgi.fix_pathinfo=1 max_execution_time = 0 max_input_time = 300 memory_limit = 256M post_max_size = 100M upload_max_filesize = 10M
B) 修改php-fpm的配置
1 2 3 4 5 6 7 8 vim /etc/php-fpm.d/www.conf listen.owner = nobody listen.group = nobody user = apache -> user = nginx group = apache -> group = nginx
C) 修改nginx的配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 vim /etc/nginx/conf.d/default.conf server { listen 80; server_name 服务器IP或者域名; root /usr/share/nginx/html; location / { root /usr/share/nginx/html; index index.php index.html index.htm; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { root /usr/share/nginx/html; try_files $uri = 404; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root $fastcgi_script_name ; include fastcgi_params; } }
Step 7.调试1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 find / -name nginx.conf $netstat -npa | grep 9000 tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 2142/php-fpm: maste chown nginx.nginx modules/ chown -R nginx.nginx html chmod -R 777 html
8.安装phpmyadmin1 2 3 4 a) wget https://files.phpmyadmin.net/phpMyAdmin/4.4.12/phpMyAdmin-4.4.12-all-languages.zip b) unzip phpMyAdmin-4.4.12-all-languages.zip c) mv phpMyAdmin-4.4.12-all-languages /usr/share/nginx/html/phpmyadmin d) chown -R nginx.nginx /var/lib/php/session
注:/usr/share/nginx/html/为网站跟目录,我采用Docker进行安装Centos进行验证的
0x02 源码编译安装LNMP 描述:基于手工MAKE源码方式构建LNMP WEB平台,操作步骤、指令非常的繁琐,如果企业要求快速、高效的配置平台,通过手工操作会消耗大量的人力成本,可以引入SHELL编程自动化实现。流程步骤如下:
Nginx官网下载Nginx软件包&解压&编译&安装;
MYSQL官网下载MYSQL软件包&解压&编译&安装;
PHP官网下载PHP软件包&解压&编译&安装;
LNMP配置文件整合,创建PHPinfo测试页面&访问。
变量定义说明:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 NGX_VER=1.17.9 NGX_URI="http://nginx.org/download/nginx-${NGX_VER} .tar.gz" NGX_NAME="nginx-${NGX_VER} .tar.gz" NGX_SRC="${NGX_NAME%.tar.gz} " NGX_DIR="/usr/local/nginx/${NGX_VER} " NGX_ARGS="--user=nginx --group=nginx --with-http_stub_status_module" PHP_VER=7.4.3 PHP_SOFT="php-${PHP_VER} .tar.bz2" PHP_URL="http://mirrors.sohu.com/php/${PHP_SOFT} " PHP_SRC=${PHP_SOFT%.tar.bz2} PHP_DIR="/usr/local/php/${PHP_VER} " MYSQL_VER=5.7.29 MYSQL_NAME="mysql-boost-${MYSQL_VER} .tar.gz" MYSQL_URL="http://mirrors.163.com/mysql/Downloads/MySQL-${MYSQL_VER%.*} /mysql-boost-${MYSQL_VER} " MYSQL_SRC="${MYSQL_NAME%.tar.gz} " MYSQL_DIR="/usr/local/mysql/${MYSQL_VER} " MYSQL_DATADIR="/data/mysql/db" GCC_VER=5.5.0 GCC_NAME="gcc-${GCC_VER} " GCC_SRC="${GCC_VER} .tar.xz" GCC_URL="http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/${GCC_NAME} /gcc-5.5.0.tar.xz"
软件包说明:1 2 3 4 5 $ls /opt/LNMP/*.tar.gz/opt/LNMP/mysql-5.7.29.tar.gz /opt/LNMP/mysql-boost-5.7.29.tar.gz /opt/LNMP/mysql-8.0.19.tar.gz /opt/LNMP/nginx-1.17.9.tar.gz
Nginx Nginx 安装Shell脚本:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 function nginx_install (){ echo -e "\e[32m 安装Nginx中..... \e[0m" CHECK_NUM=$(rpm -qa|grep -wcE "gcc|pcre-devel" ) if [ $CHECK_NUM -lt 2 ];then yum install -y wget gzip tar make gcc yum install -y pcre pcre-devel zlib zlib-devel fi CHECK_USER=$(getent passwd | grep -wc nginx) if [ $CHECK_USER -eq 0 ];then useradd -s /sbin/nologin nginx -M; fi if [ ! -f $NGX_NAME ];then wget $NGX_URI else echo -e "\e[31m#Messge: Nginx 已存在 无需下载 \e[0m" fi if [ ! -d $NGX_SRC ];then tar -zxf $NGX_NAME ; fi if [ ! -d $NGX_DIR ];then mkdir -p $NGX_DIR ; fi cd $NGX_SRC && ./configure --prefix=$NGX_DIR $NGX_ARGS if [ $? -eq 0 ];then make && make install else echo -e "\e[31m#Error: 编译失败!终止安装 \e[0m" exit fi echo -e "\e[32m#Messge: 正在启动 Nginx \e[0m" if [ ! -f /usr/bin/nginx ];then ln -s $NGX_DIR /sbin/nginx /usr/bin/nginx fi $NGX_DIR /sbin/nginx CHECK_STATUS=$(netstat -tlnp | grep -wc "nginx" ) if [ $CHECK_STATUS -ne 0 ];then echo -e "\e[32m#Nginx 启动成功.... \e[0m" else echo -e "\e[31m#Nginx 启动失败.... \e[0m" fi }
MySQL MySQL 安装Shell脚本:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 function mysql_install (){ echo -e "\e[32m 安装Mysql及其yum 依赖安装中..... \e[0m" yum install -y gcc.x86_64 gcc-c++.x86_64 make perl autoconf openssl* ncurses ncurses-devel bison bison-devel xz -y yum install -y automake zlib libxml2 libxml2-devel libgcrypt libtool bison if [ ! -f ${GCC_SRC} -a ${MYSQL_VER%.*.*} == "8" ];then echo "由于8.x需要安装更高版本的GCC暂时放弃" exit else echo "#当前 MySQL 版本 无需安装高版本的 cmake 以及 gcc" yum install -y cmake && cmake --version fi CHECK_USER=$(getent passwd | grep -wc mysql) if [ $CHECK_USER -eq 0 ];then useradd -s /sbin/nologin mysql -M else echo -e "MySQL用户已添加" fi if [ ! -f $MYSQL_NAME ];then wget $MYSQL_URL else echo -e "\e[32m#Messge: MySQL 已存在 无需下载 \e[0m" fi if [ ! -d $MYSQL_SRC ];then tar -zxf $MYSQL_NAME ; fi if [ ! -d $MYSQL_DATADIR ];then mkdir -p $MYSQL_DATADIR mkdir -p /data/mysql/tmp/ chown -R mysql.mysql /data fi if [ ! -f $MYSQL_DIR /bin/mysqld ];then mkdir -p $MYSQL_DIR cd $MYSQL_SRC && cmake . -DWITH_BOOST=./boost -DCMAKE_INSTALL_PREFIX=$MYSQL_DIR / -DSYSCONFDIR=/etc/my.cnf -DSYSTEMD_PID_DIR=$MYSQL_DATADIR / -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DMYSQL_DATADIR=$MYSQL_DATADIR / -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306 -DMYSQLX_TCP_PORT=33060 -DTMPDIR=$MYSQL_DATADIR /tmp/ -DWITH_XTRADB_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_JEMALLOC=1 -DMAX_INDEXES=64 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci if [ $? -eq 0 ];then make && make install ln -s $MYSQL_DIR /bin/* /usr/bin/ else echo -e "\e[31m#Error: 编译失败,终止安装.... \e[0m" exit fi fi if [ $? -eq 0 ];then echo -e "\e[32m#MySQL 安装成功 .....\e[0m" cp /etc/my.cnf /etc/my.cnf.bak cat > /etc/my.cnf<<END [mysqld] datadir=/data/mysql/db/ socket=/tmp/mysql.sock symbolic-links=0 default_authentication_plugin=mysql_native_password character-set-server=utf8 [mysqld_safe] log -error=/data/mysql/db/error.logpid-file=/data/mysql/db/mysql.pid END cd $MYSQL_DIR / cp support-files/mysql.server /etc/init.d/mysqld chmod +x /etc/init.d/mysqld chkconfig --add mysqld chkconfig --level 35 mysqld on service mysqld stop sed -i "s#^basedir=#basedir=${MYSQL_DIR} #g" /etc/init.d/mysqld sed -i "s#^datadir=#datadir=${MYSQL_DATADIR} /#g" /etc/init.d/mysqld echo -e "\e[32m##MySQL单机多实例初始化......\e[0m'" ./bin/mysqld --initialize --user=mysql --basedir=$MYSQL_DIR --datadir=$MYSQL_DATADIR service mysqld start CHECK_STATUS=$(netstat -tlnp | grep -wc "mysqld" ) if [ $CHECK_STATUS -ne 0 ];then echo -e "\e[32m#MySQL 启动成功.... \e[0m" echo -e "\e[32m#sql> mysql -uroot -p'!/K+ak7*RAkR' --connect-expired-password <<EOF\e[0" echo -e "\e[32m#alter user user() identified by 'WeiyiGeek' \e[0" echo -e "\e[32m#EOF \e[0" else echo -e "\e[31m#MySQL 启动失败.... \e[0m" fi else echo -e "\e[31m#Error:安装失败,请检查报错....\e[0m" exit fi echo -e "\e[32m#Messge: MySQL安装成功正在进行防火墙设置 \e[0m" echo . }
weiyigeek.top-PHP-fpm安装效果
补充知识:(1) MySQL Boost编译包依赖 描述:从MySQL 5.7.5版本开始依赖于Boost C++库,我们在安装编译的时候需要指定boost目录的路径-DWITH_BOOST=/opt/mysql-8.0.15/boost/
,推荐下载含有Boost源码的源码包;
weiyigeek.top-
下面主要描述自行安装boost的流程步骤:1 2 3 4 5 6 7 8 9 https://www.rpmfind.net/linux/rpm2html/search.php https://sourceforge.net/projects/boost/ tar -zxf boost.tar.gz && cd ./boost ./bootstrap.sh --prefix=/usr/local /boost ./b2 install
注意事项:
1.源码安装MySQL时候选择带boost源码的MySQL源码安装包进行安装-DWITH_BOOST=./boost
,否则在编译时候在线下载-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost/
(科学上网时选择否则您会知道什么叫做绝望);
weiyigeek.top-DDOWNLOAD_BOOST
2.安装编译时候不建议使用 make -j 4 ,虽然安装快但是可能影响程序的完整性;
3.如果想修改MySQL版本号的头文件,实际不建议进行修改include/mysql_version.h.in
;
4.MySQL 8.0 需要依赖 cmake3
可选 gcc 5.x(4.8.5经测试没有问题),如果编译过程中产生错误则清空CMakeCache.txt文件后解决对应错误
,重新编译即可。
5.安装新版本的GCC后,为了保证原始的GCC可用把新版本做个软链接即可,并且可以在cmake编译参数里设置绝对路径-DCMAKE_CXX_COMPILER=/usr/local/bin/g++ -DCMAKE_C_COMPILER=/usr/local/bin/gcc
6.不同的MySQL版本依赖的最低Boost版本是不一样的需要在cmake编译前查看boost中requires boost_1_xx_0
;
PHP-FPM 描述: FPM(`FastCGI 进程管理器|FastCGI Process Manager)用于替换 PHP FastCGI 的大部分附加功能,对于高负载网站是非常有用的。 PHP 安装Shell脚本:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 function php_install (){ echo -e "\e[32m#Message: 正在进行安装php环境..... \e[0m" if [ ! -f $PHP_SOFT ];then wget $PHP_URL else echo -e "\e[32m#Message: 源码文件已经存在无需重新下载 \e[0m" fi CHECK_USER=$(getent passwd | grep -wc "www" ) if [ $CHECK_USER -eq 0 ];then useradd -M -s/sbin/nologin www; fi echo -e "#PHP依赖安装" yum install libxml2 libxml2-devel gzip bzip2 sqlite-devel -y if [ ! -d $PHP_SRC ];then tar jxf $PHP_SOFT mkdir -p $PHP_DIR mkdir -p /etc/php/ fi cd $PHP_SRC && ./configure --prefix=$PHP_DIR --with-config-file-path=$PHP_DIR /php-config --with-pdo-mysql=mysqlnd --enable -mysqlnd --enable -fpm if [ $? -eq 0 ];then echo -e "\e[32m#Message: PHP 编译成功正在执行make && make install 安装操作 \e[0m" make && make install ln -s $PHP_DIR /etc/* /etc/php/ else echo -e "\e[31m#Error: 编译失败终止安装.... \e[0m" exit fi cp php.ini-development $PHP_DIR /php.ini cp $PHP_DIR /etc/php-fpm.conf.default $PHP_DIR /etc/php-fpm.conf cp $PHP_DIR /etc/php-fpm.d/www.conf.default $PHP_DIR /etc/php-fpm.d/www.conf sed -i 's#;error_log = log/php-fpm.log#error_log = /var/log/php-fpm.log' $PHP_DIR /etc/php-fpm.conf sed -i 's#;pid = run/php-fpm.pid#pid = /var/run/php-fpm.pid' $PHP_DIR /etc/php-fpm.conf sed -i 's#nobody#www#g' $PHP_DIR /etc/php-fpm.conf cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm chmod o+x /etc/init.d/php-fpm service php-fpm restart cp sapi/fpm/php-fpm.service /usr/lib/systemd/user/php-fpm.servic systemctl daemon-reload if [ ! -f /usr/bin/php-fpm ];then ln -s $PHP_DIR /sbin/php-fpm /usr/bin/php-fpm fi CHECK_STATUS=$(netstat -tlnp | grep -wc "php-fpm" ) if [ $CHECK_STATUS -eq 0 ];then echo -e "\e[32m#Message: 启动失败请请检查错误原因后重试.... \e[0m" else echo -e "\e[32m#Message: 启动成功.... \e[0m" fi }
weiyigeek.top-PHP-FPM编译执行结果
脚本执行效果:
weiyigeek.top-php-FPM执行效果
安装异常记录:
问题1: php-fpm Failed to open error_log Read-only file system (30) 错误信息:1 Mar 05 13:26:13 weiyigeek php-fpm[18283]: [05-Mar-2020 13:26:13] ERROR: failed to open error_log (/usr/local /php/7.4.3/var/log /php-fpm.log): Read-only file system (30)
错误原因:1 2 3 4 5 6 7 /usr/local /php/7.4.3/var/log /php-fpm.log /usr/local /php/7.4.3/var/run/php-fpm.pid ProtectSystem=full
解决办法:
方式1:打开 /usr/lib/systemd/system/php-fpm.service
设置如下 ProtectSystem=false
方式2:修改 php-fpm.conf 配置文件夹中的error_file 和 pid_file 到 /var/目录中即可
问题2: ERROR: failed to post process the configuration 报错信息:1 2 ALERT: [pool www] pm.min_spare_servers(0) must be a positive value ERROR: failed to post process the configuration
问题原因:
#1.在php-fpm安装目录下的/etc/php-fpm.conf未配置pm.min_spare_servers(0)参数以及pid/log配置文件有误
解决方法:1 2 3 sed -i 's/;pm.max_spare_servers = 35/pm.max_spare_servers = 35/g' /usr/local /php/etc/php-fpm.conf sed -i 's/;pm.start_servers = 20/pm.start_servers = 20/g' /usr/local /php/etc/php-fpm.conf
问题3:php-fpm启动时候:No pool defined 报错信息:1 2 3 [28-Nov-2018 17:13:23] ERROR: No pool defined. at least one pool section must be specified in config file [28-Nov-2018 17:13:23] ERROR: failed to post process the configuration [28-Nov-2018 17:13:23] ERROR: FPM initialization failed
错误原因:由于我们没有进行对pool配置文件进行配置; 解决方法:进入PHP安装目录/etc/php-fpm.d/然后执行 cp www.conf.default www.conf
即可
暂时存放 1 2 3 4 $ php-fpm --fpm-config /usr/local /etc/php/5.4/php-fpm.conf --prefix /usr/local /var -p,--prefix) 指定放置运行时文件的相对路径前缀
0x03 LNMP综合实践 综合配置脚本示例说明:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 function lnmp_config (){ echo -e "\e[32m#LNMP 测试配置....\e[0m" cp $NGX_DIR /conf/nginx.conf{,.bak} cat > $NGX_DIR /conf/nginx.conf <<EOF user nginx; worker_processes 1; error_log logs/error.log; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 9081; server_name my.weiyigeek.top; charset utf-8; location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } location / { 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; } location ~ /\.ht { deny all; } } } EOF echo "<?php phpinfo(); ?>" > $NGX_DIR /html/phpinfo.php echo "<?php echo " Hello World! php" ?>" > $NGX_DIR /html/index.php $NGX_DIR /sbin/nginx -s reload }
最终执行程序所属者查看:1 2 3 4 5 6 7 8 $ps aux | grep -E "nginx|php-fpm|mysql" root 4511 0.0 0.0 11820 1592 ? S 20:54 0:00 /bin/sh /usr/local /mysql/5.7.29/bin/mysqld_safe --datadir=/data/mysql/db/ --pid-file=/data/mysql/db//weiyigeek.pid mysql 4687 0.0 1.1 1797852 186644 ? Sl 20:54 0:00 /usr/local /mysql/5.7.29/bin/mysqld --basedir=/usr/local /mysql/5.7.29 --datadir=/data/mysql/db --plugin-dir=/usr/local /mysql/5.7.29/lib/plugin --user=mysql --log -error=/data/mysql/db/error.log --pid-file=/data/mysql/db//weiyigeek.pid --socket=/tmp/mysql.sock root 13942 0.0 0.0 47916 4804 ? Ss 21:49 0:00 php-fpm: master process (/usr/local /php/7.4.3/etc/php-fpm.conf) php 13943 0.0 0.0 47916 5124 ? S 21:49 0:00 php-fpm: pool www php 13944 0.0 0.0 47916 5628 ? S 21:49 0:00 php-fpm: pool www root 14917 0.0 0.0 20568 652 ? Ss 21:58 0:00 nginx: master process nginx nginx 14918 0.0 0.0 20928 1596 ? S 21:58 0:00 nginx: worker process
安装异常记录: 问题1.Nginx + php-fpm 访问php文件时候显示 常见错误原因:
php-fpm找不到SCRIPT_FILENAME里执行的php文件
php-fpm不能访问所执行的php也就是权限问题
情况1解决方法:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 location ~ \.php$ { try_files $uri = 404; } 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; } systemctl restart nginx(/usr/local /nginx/sbin/nginx)
情况2解决方法:1 2 3 4 5 6 7 第一种,就是把你root文件夹设为其他用户允许 第二种,找到你的php-fpm.conf的配置文件,找到下面这段,把apache替换成你要的用户组 ; RPM: apache Choosed to be able to access some dir as httpd user = apache ; RPM: Keep a group allowed to write in log dir. group = apache
weiyigeek.top-phpinfo
0x04 工具补充 wlnmp安装部署包 描述:wlnmp支持CentOS6、7、8一键部署lnmp环境官网:https://www.wlnmp.com
安装使用简单说明:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 yum install epel-release rpm -ivh http://mirrors.wlnmp.com/centos/wlnmp-release-centos.noarch.rpm yum install wnginx wphp74 wmysql57 wphp57-memcache mysql -uroot -p mysql> set password = password('weiyigeek' ); mysql> ALTER USER 'root' @'localhost' IDENTIFIED BY 'WeiyiGeek' ; /etc/init.d/* /etc/init.d/nginx start yum update wnginx