在Ubuntu12.04上安装Nginx+php5.5+php-fpm

/ 浏览:4541 次

额...就是上个星期的时候要装一个环境,其实难点不是什么,而是一开始没有对的方法和思路。或者是正确的人去指引你怎么做的时候,你是真的很难去突破你面临的困难。周末的下午,一个在房间里,脑海里面想过了很多的事。呆坐了许久之后,推开门的刹那,终究还是想明白了,想过的事,做过的决定,一开始的时候兴许会很迷惑到底是否正确。

现在想起来,看来很多思虑了良久的事,到最后想要答案的时候,其实都是正确的。所以说,这次的选择也是对的。

因为某些原因,太多的事就不写得太过突显了,等写年终总结的那会再细细斟酌吧。

一开始,要装编译PHP的时候,并没有过多经验的我,只能按照以前的命令去执行了一遍,我信以为会成功的时候,却发现有太多的问题没有解决了。而又当我把问题一一解决的时候,又出现了新的问题。

注意看编译的时候出现的错误

一般比较重要的错误显示log都会在终端界面的结尾处显示的,所以要特别留意重点的最后那几行的显示,回想起来的时候,我第一次出现的问题就是。无法从linux内核的软件源处获取安装php的源地址,所以导致我输入安装php命令的时候会出现找不到软件源的信息。又由于个人英文比较蹩脚的原因,硬是只自身的英语单词量翻译了一遍稍微略看懂了一遍。后来找了别的命令和方法之后,终于才把php给装上去了,终端运行php -v的时候,很乐观的显示了php5.3版本的软件版本信息。

而当此时我以为我已经把php安装好的时候,要去配置nginx.conf的时候,本已经把

    location ~ \.php$ {
        #root           html;
        #fastcgi_pass   127.0.0.1:9000;
        #fastcgi_index  index.php;
        #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #include        fastcgi_params;
                try_files $uri =404;
                #fastcgi_pass 127.0.0.1:9000;
                # With php5-fpm:
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                include fastcgi_params;
    }

这段信息加上去了的时候,去运行测试文件,却还是无法解析php。此时,我已经恨透了openedx这个辣鸡系统了,坦率的讲,这个东西的入门槛确实高得离谱,让我等phper望而远之。

善用搜索引擎

后来把各种ubuntu安装编译php教程的信息看了一遍了,之后又开始重新继续操刀,这次查询到的原因就是nginx的php解析模块里面有一个叫php5-fpm.sock的链接没有启动启动,后来搜索引擎了一遍之后改了各种php的配置文件之后终于把php5-fpm.sock的链接给配置了起来,nginx - t和重启一遍之后没有任何的报错。又当我兴奋的打开测试的php页面的时候,又是显示openedx的沉船界面。着实是让人崩溃不已,心中有一万句mmp不知道该和谁说。就这样,围绕这个问题,我一个人独自痛苦了两天了,还是没有找到终结这个问题的方法。

善于总结自己的错误

时间又回到了星期天的下午时分,一个人安静的回想了一遍操作,凌乱的让自己都无法想起到底做过些什么,修改过些什么。其实由此至终,我都是在瞎忙,根本就没有一套很好的做事流程和方法。也许这也也是因为GS的原因吧,哎...此处省略一万字。

重新总结

镜像还原了一遍生成环境,在测试服务器上面重新操作,由于某种特许原因,服务器没有root的登录,导致我之前修改文件的时候都没有进行备份,所以这次我用sudo su获取了root的权限之后,把每一个需要修改的文件都会进行一次的备份。

首先总结第一点问题,为什么相同的操作系统和相同的环境,在很久之前就可以安装成功,后来去查看了下以前的那个服务器的版本信息之后才发现原来这台服务器的版本和我现在的这个测试服务器的版本是不一样的,是Ubuntu14.04版本的。果然这是问题之一,随后我去看了下软件源的配置文件/etc/apt/sources.list

deb http://mirrors.cloud.aliyuncs.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.cloud.aliyuncs.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.cloud.aliyuncs.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.cloud.aliyuncs.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.cloud.aliyuncs.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.cloud.aliyuncs.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.cloud.aliyuncs.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.cloud.aliyuncs.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.cloud.aliyuncs.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.cloud.aliyuncs.com/ubuntu/ trusty-backports main restricted universe multiverse
deb http://php53.dotdeb.org stable all

此时!!恍然大悟!此处居然有添加了php的源网址,而再到我的测试服务器上面去查看配置文件的时候,果然没有这个源地址。果断把源地址加到了测试服务器上面去。然后再执行apt-get update更新下地址软件。

安装编译php

由于环境问题nginx已经安装了,所以nginx的步骤我就不写了,安装PHP,输入一下的命令 sudo apt-get install php5-cli php5-cgi php5-fpm php5-mcrypt php5-mysql 该下载的东西下载完毕之后就会出现一个让你选择Y/N的提示,你直接输入Y就可了,然后就开始编译了,....时间过去几分钟,然后会出现一个红色底的对话框询问你一些东西,大致内容我没看,反正你选YES就对了。时间又过去了几分钟,此时PHP终于安装完毕了,终端输入命令 PHP -V之后,乐观的看到了PHP的版本信息了。

配置nginx加载php-fpm信息

一般情况下nginx的配置文件里面会有php-fpm的配置信息,但是会被注释起来,这个时候你要做的就是把配置信息拷贝出来然后做修改


        #location ~ \.php$ {
        #       fastcgi_split_path_info ^(.+\.php)(/.+)$;
        #       # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
        #
        #       # With php5-cgi alone:
        #       fastcgi_pass 127.0.0.1:9000;
        #       # With php5-fpm:
        #       fastcgi_pass unix:/var/run/php5-fpm.sock;
        #       fastcgi_index index.php;
        #       include fastcgi_params;
        #}

以上是我的nginx的默认配置信息,这个时候你要根据服务器的版本和其他的版本信息来修改这个配置文件,当然你可以选择新增配置域名信息的文件也可以在当前默认的配置文件修改,此处要留意的就是, fastcgi_pass 127.0.0.1:9000;和 fastcgi_pass unix:/var/run/php5-fpm.sock;在我查阅搜索引擎的时候记得是,php5.3以上的本本将不会采用端口的形式,现在是采用fastcgi_pass unix:/var/run/php5-fpm.sock;所以对比了我的安装版本我就把端口的配置信息注释掉了,只留下fastcgi_pass unix:/var/run/php5-fpm.sock;了。

location ~ \.php$ {
       fastcgi_split_path_info ^(.+\.php)(/.+)$;
       # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

       # With php5-cgi alone:
       #fastcgi_pass 127.0.0.1:9000;
       # With php5-fpm:
       fastcgi_pass unix:/var/run/php5-fpm.sock;
       fastcgi_index index.php;
       include fastcgi_params;
}

上面就是我的环境nginx里面配置的信息,然后当我完成了这些操作之后,时间算下来其实十分钟不到的时间。但是在没有人提点和没人指点的情况下,我确实足足花了好几天的时间去研究各种配置信息和浪费在某些与缓解无关的信息点上面,由此我觉得非常的失望,让我感觉到了各种无助,甚至是讨厌。所以,周日的下午,让我的情绪到了莫名的冰点。

创建mysql数据库用户名和密码:

CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';

查询是否有创建成功用户:

SELECT host, user, password FROM mysql.user WHERE user='myuser';

赋予创建用户全局所有的权限:

GRANT ALL ON *.* TO 'myuser'@'localhost';

手札完。

如果你想转载,请注明来源或者出处