服务器上部署Nginx,PHP,并建立PHP与Nginx、MySQL、Redis关联

1、Nginx的单独安装

1、安装

Nginx的作用与Apache一样,都是Web服务器,相对于Apache有一定优势

Nginx的作用参考:https://www.cnblogs.com/wcwnina/p/8728391.html

安装:apt-get install nginx

配置文件路径:/etc/nginx/sites-available/default,也可用 nginx -t 查看配置文件路径(https://www.cnblogs.com/zxxsteven/p/9895827.html),修改配置文件后可用nginx -n 配置文件语法是否有误

启动:service nginx start

安装过程参考:https://www.cnblogs.com/flyuz/p/9962491.html

2、问题

1)启动时可能会出现80端口被占用问题。原因:Apache与Nginx默认下都用80 port,端口冲突。解决方法:

netstat -ntlp 查看目前端口被占用情况,找到占用80端口进程的PID,用 kill 命令杀掉,service nginx start即可

2)启动完nginx后,输入本机IP出现 welcome to nginx 的简单文件说明则证明nginx没问题,但是本人遇到的了奇怪的问题就是,打开后仍然是Apache的欢迎界面。原因:实际上nginx已经成功安装,只是nginx使用了apache的欢迎界面,造成的假象。解决方法:

vim /etc/nginx/sites-available/default

查看配置文件中设置的主目录,代码为:root /var/www/html,需要注意的是/var/www/html下的 index.html 是apache的欢迎界面代码,index.nginx-debian.html才是nginx的欢迎界面代码,index.html是nginx与apache的共同默认主界面。解决方法:

修改配置文件主目录为/var/www/html2,cp /var/www/html /var/www/html2,将 html2/index.html 删除,将index.nginx-debian.html命名为index.html,restart nginx

2、PHP安装,并与MySQL关联

本人MySQL是安装ubuntu server时勾选了,省去了安装MySQL,要想建立MySQL与PHP的关联,必须手动编译、安装PHP,并在编译时用相关参数指定PHP与MySQL建立关联关系

1、下载PHP7.0:wget http://php.net/get/php-7.1.4.tar.gz/from/a/mirror(说明:这里的压缩包显示PHP是7.1版本,但是安装完成后使用 php -v查看为7.0版本不知道为什么?)

2、解压:tart -zxvf php-7.1.14.tar.gz(tar命令:https://www.cnblogs.com/w54255787/p/10175202.html

3、编译

1)cd  到 php-7.1.14

2)configure

./configure --prefix=/usr/local/php \
    --enable-fpm \
    --enable-debug \
    --with-gd \
    --with-jpeg-dir \
    --with-png-dir \
    --with-freetype-dir \
    --enable-mbstring \
    --with-pdo-cul \
    --with-pdo-mysql=/usr \
    --with-mysqli=/usr/bin/mysql_config \
    --with-config-file-path=/usr/local/php/etc
(--with-mysql:输入mysql安装目录,即basedir的值;--with-cul老版本,有关configure中参数的版本问题:https://blog.csdn.net/zhou75771217/article/details/83303058

--with-pdo-mysq、--with-mysqli参数的正确指定直接将MySQL、PHP建立了联系

参数说明

--prefix:为PHP安装目录

--with-pdo-mysql:为MySQL安装主目录(可在配置文件中查看mysql路径)

--with-mysqli:为mysql_config文件所在路径,可能会提示无法找到mysql_config,这是缺少libmysqlclient-dev,运行:

apt-get install libmysqlclient-dev(参考:http://blog.sina.com.cn/s/blog_5f7268eb0102wq51.htmlhttps://segmentfault.com/q/1010000007040767

--with-config-file-path:为php.ini所在路径

对configure中参数的说明:https://www.cnblogs.com/meiling12/p/6096789.html

错误:

出现错误多数因为没安装够包,参考:https://www.cnblogs.com/a-flydog/p/9460310.html

3)make && make install

整体编译流程可参考:https://www.jianshu.com/p/b6cc91740e90

6、在php-7.1.14下

cp    php.ini-development    /usr/local/php/etc/php.ini(/usr/local/php = 安装目录)

cp    /usrlocal/php/etc/php-fpm.conf.default    /usr/local/php/etc/php-fpm.conf

启动:/usr/local/php/sbin/php-fpm

cp    sapi/fpm/init.d.php-fpm    /etc/init.d/php-fpm   权限设置:chmod    a+x    /etc/init.d/php-fpm

配置完后可能仍会出现service php-fpm not found,直接看:https://www.jb51.net/article/115489.htm

3、将Nginx与PHP建立联系

Nginx能够与PHP结合使用,简单来说:由于Nginx是不能处理PHP页面的,所以当nginx软件收到一个客户端的请求后,根据配置文件判断是否是PHP文件,如果是,则通过某种方法转发给PHP程序,PHP程序处理完之后返回结果给nginx,nginx再返回结果给客户端。转发的过程Nginx需要借助于CGI接口,Fast-CGI是CGI的升级版,php-fpm可以对fast-cgi进行管理。

更多关于fast-cgi、php-fpm的关系:https://blog.csdn.net/dengjiexian123/article/details/53358452

Nginx、PHP联系参考文章:

https://blog.csdn.net/u012628581/article/details/85682121https://www.cnblogs.com/mangguoxiansheng/p/5967745.html

Nginx、PHP安装完后,通过修改Nginx配置文件就可将两者建立联系

1、连接方式连接方式有两种:tcp socket、unix socket

2、修改配置

本人用的tcp socket方式连接,在Nginx配置文件的server 块中,默认的location块后边加入:

location ~ \.php$ {

        root html;

        fastcgi_pass  127.0.0.1:9000;

        fastcgi_index  index.php;

        fastcgi_param  SCRIPT_FILENAME  /主目录$fastcgi_script_name;

        include  fastcgi-params;

}

tcp socket、unix socket两种连接代码:

https://blog.csdn.net/koastal/article/details/52303316https://blog.csdn.net/wuhuagu_wuhuaguo/article/details/83032578

PHP官方nginx配置文档:https://www.php.net/manual/zh/install.unix.nginx.php

测试:在主目录在vim info.php输入:

<?php

phpinfo();

?>

打开 IP/info.php 可看到关于PHP的信息

4、Redis与PHP建立联系

Redis与PHP建立联系不需要安装Redis的独立包,直接下载PHP的Redis扩展包,这里着重强调Redis与PHP的版本必须要匹配,否则是无法连接成功的!本人的PHP使用的是7.0版本,需要下载对应的phpize、Redis扩展包

1、安装phpize

编译PHP的Redis扩展包需要安装phpize:apt-get install php7.0-dev

2、Redis扩展包

本人的PHP使用的是7.0版本,下载对应的Redis扩展包(下边有几个没法下载,肯定有一个能下载,忘记是哪个了):

https://blog.csdn.net/xiamoyanyulrq/article/details/80402302

https://www.cnblogs.com/guaiyouyisi/p/8074439.html

https://blog.csdn.net/setoy/article/details/77679976

https://blog.csdn.net/liubin9043/article/details/84939501

https://www.cnblogs.com/xiaotaoing/p/8718278.html

3、编译

1)解压,cd到phpredis

2)./configure \

    --with-php-config=/usr/local/php/bin/php-config     (PHP安装路径/bin/php-config)

3)make && make install

4)vim /usr /local/php/etc/php.ini

extension=redis.so,或extension=/usr/local/php/lib/php/extensions/no-debug-nor-2ts-2015012/redis.so

5)测试

可在IP/info.php中找到Redis相应信息

若发现有如下问题,

说明Redis扩展与PHP版本不一致,参考https://segmentfault.com/q/1010000000603251

Redis扩展官网:https://pecl.php.net/package/redis

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值