3.运行./configure脚本,指定安装目录 ./configure –sbin-path=/usr/local/nginx –conf-path=/usr/local/nginx/nginx.conf –pid-path=/usr/local/nginx/nginx.pid –with–http_ssl_module
nginx ./configure
nginx ./configure结果
然后就设置完了,,,如果报错的话,一般就是找不到依赖,缺什么就yum -y install xxx-devel,安装完后就口以了。第一次的时候,提示我缺少pcre,介个东东是正则,rewrite这样的模块是需要他来支持的,当然可以在configure加个选项–without不安装系统推荐安装的模块就可以跳过这个错误继续安装了。但是,nginx官方默认安装的模块还是都给装上,少了这个正则,等下nginx就没法匹配.php结尾的文件,再交给php-fpm来处理了。
然后,就是编译make了。。。纠结的是,nginx在make后,自动就给装上啦,不需要make install啦
nginx
nginx成功安装啦
现在,就是要让nginx匹配,匹配到.php结尾的文件,就通过fastcgi传给php-fpm来解析,解析完后再给nginx传给浏览器显示,刚才./configure时已经指定了nginx配置文件地址
修改配置:vim /usr/local/nginx/nginx.conf
大概在64行左右,模板已经有支持php-fpm的配置了,去掉#注释,然后重启一下nginx就可以了。
再回到/usr/local/nginx/html目录,编写一个phpinfo()的页面,然后在浏览器中访问这个页面,就能看到php和nginx的信息了:
phpinfo
往下翻,看到php还有很多常用的扩展都没有装上的呢,比如curl intl openssl等等其他扩展。这是因为在php ./configure的时候,没有enable的原因。这些库有需要的时候,可以再去源码目录的extentison中编译安装,动态添加进去。
还有一个问题就是,装完后
php-mysql
mysql_connet等系列函数用不了,这种warning信息,证明mysql驱动是装上了的。因为他毕竟不是报的undefined function mysql_connet…,这种情况是因为php找不到mysql.sock的连接。启动mariadb(mysql)进入,输入status,记住unix socket的路径
mysql.sock
然后把他配置到php.ini里面:
vim /usr/local/lib/php.ini找到mysql.default_socket,加上刚才的sock文件位置
mysql.default_socket
然后看看phpinfo页面,mysql扩展中mysql.default_socket就有值了。最一开始是没有的,配置了之后才有的,当然如果是yum安装的话,不用去配置,php也是找的到这个mysql.sock的。当然mysqli和pdo-mysql都要这样配一下
phpinfo mysql
然后,就能正常输出了
mysql连接成功
因为不是yum安装的,nginx还没有成为系统服务,在/etc/rd.d/init.d下新建一个nginxd的脚本,方便开机自启以及使用service nginxd start/stop/restart来管理nginx
service nginxd start
ok,终于完成了lnmp环境的搭建!nginx也支持php了。nginx和php都是源码方式安装的,mariadb是用yum源安装的。好好体会一下nginx的魅力以及最新版php带来的新功能,准备用这个服务器做个备份的,有想过主从服务器,分布式部署,负载均衡,可惜这两台云服务器不在一个内网。。。慢慢思考吧。加油。
Ubuntu 14.04 LTS 安装 LNMP Nginx\PHP5 (PHP-FPM)\MySQL
Ubuntu 13.04 安装 LAMP\Vsftpd\Webmin\phpMyAdmin 服务及设置