最近经济出问题,只好更好一下VPS。由快速的香港VPS(75元/月)更好为 米国VPS(39元/月).php
趁着周末,决定抛弃军哥的LNMP一键包了,本身去编译安装LNMP,哈。平时在群里看一些朋友都在编译安装了,遂本身也动手体验一下。PS:我用ubuntu下,基本都是apt-get完成的,基本版本能够保持最新的了。html
说个题外话,为何我要编译LNMP呢?由于军哥的LNMP一键包并不是比较新的版本,为了保持本身的程序和本身的开发环境持平,遂选择编译安装。mysql
一些参考的网站:
linux
NGINX安装:http://www.nginx.cn/installnginx
PHP安装:http://www.nginx.cn/231.htmlsql
Mysql安装:http://blog.51yip.com/mysql/1312.html (Mysql源码包下载:http://download.softagency.net/MySQL/Downloads/MySQL-5.6/)shell
Nginx的安装过程,基本按照参考网站的方法进行就能够了,这里没有比较大的问题。
ubuntu
接着安装PHP,这里可能会出现比较多的问题了。服务器
1.编译安装时,socket
./configure #此处必需要带安装目录(在你不熟悉PHP的目录布置下)。
./configure --prefix=/usr/local/php --enable-fpm #这部分记得写上,后面的参数都是安装时附带安装上的扩展。
编译安装完毕后,配置一下nginx,让nginx可以支持PHP. 接下来,会遇到一个问题,如何重启php-fpm?
文中给出的 kill -INT `cat /usr/local/php/var/run/php-fpm.pid` 可能并不能终止php-fpm!这时候能够用这个方式来重启 php-fpm.
ps -ef | grep php-fpm #获取php-fpm的进程 kill [进程的ID] #终止php-fpm进程; [进程ID]指的是 标记着master 的进程ID 。不含[] 例如root 19723 1 0 17:49 ? 00:00:00 php-fpm: master process /usr/local/php/sbin/php-fpm #启动php-fpm
好了,php-fpm已经重启了。若是按照上面方法,你终止后没法启动php-fpm,请回看参考网站,第一次编译安装先按照教程操做一次就好了。另外,我下载的是5.5.9 ,将教程的php-5.4.7.tar.gz 改成 php-5.9.9.tar.gz 则可。
php.ini 若是不知道在哪里,写一个测试的文件( phpinfo() ),上传到服务器。你就知道php.ini在哪里了。默认编译安装完毕,是没有这个文件的。你要从 安装包中 复制一份过去。参照网站有说起的。
PHP安装完毕,接着咱们安装mysql. 网上一些教程比较旧,还用make安装。刚开始我就被坑了很多。还有就是,我一直想吐槽Mysql官方,找个下载地址都很难,网上教程说起的地址都已经404.。Mysql安装参照本文前面的网站,基本能够正常安装的了。
Msyql安装完毕,有一些地方须要注意的,mysql.cnf配置文件记得添加,否则的话,后面启动可能会出现报错的现象
socket = /usr/local/mysql/mysql.sock
接着去下载phpMyAdmin。这里就不说起方法了。运行时,会遇到某些函数没有运行的状况. 这说明咱们缺乏一些必要的扩展。
回答PHP的源码安装包(示例都是在 /usr/local/src/php-5.5.9). ,在ext目录下,进入须要安装的扩展。
安装方法以下:
/usr/local/php/bin/phpize #只有在PHP扩展时,才有效。具体用途本身谷歌吧。若是你运行这个命令提示 不存在。那么说明你没有安装上面的教程安装,用这个命令找 这个文件吧: find / -name phpize ./configure --with-php-config=/usr/local/php/bin/php-config #添加扩展到PHP配置文件 make #提示一下,这里很容易会出现 error [xxx.lo] 1 之类错误。这时候自行搜索对应的扩展安装方法就好了。切忌直接搜索 make: *** [xxxx.lo] Error x 。这是浪费人生事件。最好的解决是:php编译XXX扩展方法 make install # 编译完毕后,别忘在 php.ini添加对应的配置项 extension=xxx.so
三个常见的扩展安装配置方法:
./configure --with-php-config=/usr/local/php/bin/php-config --with-mysql=/usr/local/mysql #Mysql ./configure --with-php-config=/usr/local/php/bin/php-config --with-mysqli=/usr/local/mysql/bin/mysql_config #Mysqli ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo_mysql=/usr/local/mysql #pdo 另外,安装完Mysql, Mysqli, PDO_Mysql扩展后,记获得php.ini中添加对应的设置.否则 会没法链接Mysql pdo_mysql.default_socket= /usr/local/mysql/mysql.sock mysqli.default_socket = /usr/local/mysql/mysql.sock mysql.default_socket = /usr/local/mysql/mysql.sock
nginx php mysql配置好后,phpMyAdmin可能会遇到 没法登录之类的问题。
尝试将config.sample.inc.php 修改成 config.inc.php
基本上,LNMP已经能够正常使用了!后面在更新业务的需求,进行扩展的安装。对了,Mysql默认编译安装完毕后,可能处于 严格模式。 亲们,记得改成 宽松模式。
后记:在接触此次编译安装,发现并无想象中的难,不少地方都是本身疏忽大意容易起的。linux有一个很好的特色,每一个操做出错,都会有对应的错误提示。根据上面的提示,网上一搜基本都有答案。找不到的话,换一个思路去搜索,说不定就找到答案了。其次就是,网上不少教程都是老旧的,并且一推站互抄,太恶心了。最后,上面操做若是会编写shell脚本的话,之后能够更加事倍功半 :)