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.html、https://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/85682121、https://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/52303316、https://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