yum安装最新版本lnmp nginx/php配置问题

网友投稿 671 2022-09-28

yum安装最新版本lnmp nginx/php配置问题

yum安装最新版本lnmp  nginx/php配置问题

##前言: 本教程搭建好之后的环境如下:

[root@localhost ~]# cat /etc/system-releaseCentOS Linux release 7.3.1611 (Core)[root@localhost ~]# nginx -vnginx version: nginx/1.10.2[root@localhost ~]# mysql -Vmysql Ver 15.1 Distrib 10.2.6-MariaDB, for Linux (x86_64) using readline 5.1[root@localhost ~]# php-fpm -vPHP 7.0.20 (fpm-fcgi) (built: Jun 10 2017 06:35:53)Copyright (c) 1997-2017 The PHP GroupZend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies with Zend OPcache v7.0.20, Copyright (c) 1999-2017, by Zend Technologies[root@localhost ~]# php -vPHP 7.0.20 (cli) (built: Jun 10 2017 06:34:07) ( NTS )Copyright (c) 1997-2017 The PHP GroupZend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies with Zend OPcache v7.0.20, Copyright (c) 1999-2017, by Zend Technologies

1、第一步,-安装linux系统,设置国内yum源,这会大大加快安装进度:

系统-:超快! 设置国内yum源:超快! ##2、提前安装需要的服务端:

因为待会编译php的时候会安装这些服务对应的拓展,所以提前装好服务端:

mysql 安装:

memcached安装:yum install -y memcached

redis安装:yum install -y redis

3、安装nginx和php

4、查看各种软件的版本:

查看php版本:

php -v

查看mysql版本:

mysql -V #这里的V要大写

查看nginx版本:

nginx -v

按照我上面讲的那些,装好之后应该就是这样的。

5、查看执行文件所在的路径:

这个很有必要,因为你待会儿需要开启,关闭,重启之类的操作,肯定要知道执行文件在哪里呀!

[root@localhost nginx]# which nginx/usr/sbin/nginx[root@localhost nginx]# which mysql/usr/bin/mysql[root@localhost nginx]# which php/usr/bin/php[root@localhost nginx]# which php-fpm/usr/sbin/php-fpm[root@localhost nginx]#

很简单吧?yum安装的就是这么简单呀!

6、查看各种配置文件所在的地方:

查看php的:

php --ini #这些命令我咋知道?那是因为我用了php -h这条命令查看有哪些可用的参数Loaded Configuration File: /etc/php.ini #这个就是php.ini所在的位置啦!

查看php-fpm的,这个文件一般和php.ini在同一个文件夹下面,进到php.ini所在文件夹,然后ls查看一下就知道了:

/etc/php-fpm.conf/etc/php-fpm.d/conf

查看nginx的

nginx -V #注意,这里是大V,也是 nginx -h 找到的命令

结果如下:

nginx version: nginx/1.10.2built by gcc 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC)built with OpenSSL 1.0.1e-fips 11 Feb 2013TLS SNI support enabledconfigure arguments: --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --------------pid-path=/run/nginx.pid --lock-path=/run/lock/subsys/nginx --user=nginx --group=nginx --with-file-aio --with-ipv6 --with---with---with---with---with---with---with---with---with---with---with---with---with---with---with---with---with---with---with---with-mail=dynamic --with-mail_ssl_module --with-pcre --with-pcre-jit --with-stream=dynamic --with-stream_ssl_module --with-google_perftools_module --with-debug --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic' --with-ld-opt='-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-E'[root@localhost nginx]#

看到了吧?上面信息非常丰富,各种文件的路径都有了,配置文件,安装路径,错误日志,访问日志等等。

查看mysql的配置文件

mysql的查看帮助命令比较特殊,不是直接加 -h,而是–help。这个是因为mysql登陆的时候有时候会用到-h这个命令。远程登陆的时候会用到,用来指定远程host地址。 mysql帮助文件比较长,我们直接把它输出到文件里面查看好了:

mysql --help >>/root/mysqlhelp.txt

这样,mysql的文件就不会输出了,而是直接写入到​​/root/mysqlhelp.txt​​​ 这里面了。查看一下就可以得知:mysql的配置文件可能在的位置就是以下三个地方啦!骑士有经验的话,肯定知道是在:​​/etc/my-f​​ :

/etc/mysql/my-f /etc/my-f ~/.my-f

验证一下是否正确,命令如下:

cat /etc/my-f

即可看到内容是吧?

7、备份各种配置文件:

这个必须要做,不然,呵呵,你懂的:

#备份php的配置文件cp /etc/php.ini /root/php.inibak#备份php-fpm的配置文件cp /etc/php-fpm.conf /root/php-fpm.confbakcp /etc/php-fpm.d/conf /root/confbak#备份nginx配置文件:cp /etc/nginx/nginx.conf /root/nginx.confbak

#php-fpm的pid文件和错误日志所在路径:pid = /var/run/php-fpm/php-fpm.piderror_log = /var/log/php-fpm/error.log

#nginx的错误日志和pid文件路径:error_log /var/log/nginx/error.log;pid /run/nginx.pid;#nginx默认的访问日志,这个可以在单独的虚拟机里面重新定义,现在只需要知道它的地址即可:access_log /var/log/nginx/access.log

##8、配置nginx虚拟机和php-fpm,rewrite规则

nginx主配置文件:

#nginx用户和组,一般组也是vboxsf; worker_processes auto;#错误日志路径error_log /var/log/nginx/error.log;pid /run/nginx.pid; events { use epoll; worker_connections 51200; multi_accept on;}{ log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$' '"$"$ access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; #虚拟机所在目录 include /etc/nginx/vhosts/*.conf;}

其中一个虚拟机的配置文件:(未设置rewrite规则)

cat /etc/nginx/vhosts/mytest.com.conf

server { listen 80 ; server_name mytest.com; root /media/sf_WWW/mytest.com; #设置默认首页 location / { index index.php index.html index.htm; } location ~* \.php$ { fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }

设置rewrite规则的虚拟机配置文件:

server{ listen 80; server_name dev.xxx.ysp.com; root /media/sf_WWW/xxx.com/mfxxapi; index index.php; location ~* \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; index index.php index.html; } #rewrite规则,如果没找到文件,就把这个路径的后半截交给框架的index.php负责,框架就会去找到对应的文件,并输出 if (!-e $request_filename) { rewrite ^/(.*)$ /index.php?s=$1 last; } }

##其他细节: 1、linux开启80端口和3306端口,让外面的人可以访问这个虚拟机的80端口,开3306的原因是让某些mysql用户可以远程访问数据库,因为我们经常使用mysql客户端管理数据库:

2、php开启错误提示,如果不开的话,当代码出现错误的时候,直接一片空白或者50x错误,这是因为yum安装默认用的是生产环境的 ini 文件,我们开发的时候把这个打开,有利于拍错。

3、各种服务的开机自启动:

vim /etc/php.ini

改动如下:

error_reporting = E_ALLdisplay_errors = On

出现问题的解决步骤: 1、查看nginx访问日志和错误日志;(95%的问题在这里可以找到答案) 2、查看php的错误日志(要使用的话需要手动开启,一般不会用到); 3、抓包fiddler工具辅助查看,postman模拟请求,提交表单

ubuntu安装多个版本的php:

​​多版本php​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:通过FeignClient如何获取文件流steam is close问题
下一篇:计算机网络第七版课后习题-第四章网络层-习题中的简答题
相关文章

 发表评论

暂时没有评论,来抢沙发吧~