说明:OpenResty 是一个基于Nginx与Lua的高性能web平台,但lua语言在写web程序方面有很多不足,比如基础库缺乏,写web程序太费精力。PHP语言简单快捷,容易上手,有很多快速开发web程序的各类框架。如果能有这么一个框架:在需要高性能的地方用lua,在业务逻辑复杂的地方用web。这样,既可以快速开发web网站,又能提高系统性能。

本系列总共6篇文章,将一步步说明怎么搭建环境,怎么开发restful API,lua框架villina的简单说明,一些小技巧等。

摘要:centos6.5下用源码安装php5.6、openresty、mysql5.6、pdo_mysql扩展、redis3.0。

源码统一放到/opt/src目录。

conf配置文件统一放到/etc/conf目录。

1. php5.6安装

⑴下载PHP

cd/opt/src/

wgethttp://cn2.php.net/distributions/php-5.6.17.tar.gz

tar-zxvfphp-5.6.17.tar.gz

cdphp-5.6.17

⑵配置PHP的编译参数

./configure--prefix=/opt/php--with-mysql--with-mysqli--with-iconv-dir--with-zlib--with-libxml-dir--enable-xml--with-curl--enable-fpm--enable-mbstring--with-gd--with-openssl--with-mhash--enable-sockets--with-xmlrpc--enable-zip--enable-soap--with-libdir=/usr/lib64--with-jpeg-dir=/usr/lib64--with-freetype-dir=/usr/lib64--with-png-dir=/usr/lib64

①如果出现错误:

configure:error:xml2-confignotfound.Pleasecheckyourlibxml2installation

安装:yuminstall-ylibxml2-devel

②如果出现错误:

configure:error:CannotfindOpenSSL's<evp.h>

安装:yuminstall-yopenssl-devel

③如果出现错误:

configure:error:Pleasereinstallthelibcurldistribution

安装:yuminstall-ylibcurl-devel

④如果出错误:

configure:error:jpeglib.hnotfound

安装: yuminstall-ylibpng-devellibjpeg-devel

⑤如果出现错误:

configure:error:freetype-confignotfound.

安装:yuminstall-yfreetype-devel

⑥安装下列软件:

yuminstall-ymakecmakegccgcc-c++autoconfautomake

⑶编译

make

makeinstallclean

⑷复制php.ini

cpphp.ini-development/opt/php/lib/php.ini

cd/opt/php/etc/

cpphp-fpm.conf.defaultphp-fpm.conf

⑸使用PHP-FPM管理脚本,在编译包里面已经配置好了,只需要复制到/etc/init.d/中即可

cd/opt/src/php-5.6.17/sapi/fpm/

cpinit.d.php-fpm/etc/init.d/php-fpm

chmod+x/etc/init.d/php-fpm

⑹启动php-fpm

servicephp-fpmstart

⑺加入开机启动策略

chkconfig--addphp-fpm

chkconfigphp-fpmon

2. OpenResty的安装

参考《OpenResty最佳实践》,照着做就OK了。

https://moonbingbing.gitbooks.io/openresty-best-practices/content/index.html

⑴下载OpenResty

去官网http://openresty.org/下载最新版的openresty,我这里用ngx_openresty-1.9.7.1.tar.gz。

把gz文件拷贝到/opt/src目录。

⑵解压tar.gz文件

输入命令tarxzvfngx_openresty-1.9.7.1.tar.gz,按回车键解压源码包。若你下载的源码包版本不一样,将相应的版本号改为你所下载的即可,或者直接拷贝源码包的名字到命令中。此时当前目录下会出现一个ngx_openresty-1.9.7.1文件夹。

⑶cdngx_openresty-1.9.7.1。

⑷了解组件是否默认激活。官网上有个组件列表,我们可以参考,列表中大部分组件默认激活,也有部分默认不激活。默认不激活的组件,我们可以在编译的时候将他们激活,下面步骤详说如何激活。

⑸配置安装目录及需要激活的组件。使用选项--prefix=installpath,指定其安装目录(默认为/usr/local/openresty);使用选项--with-Components激活组件,--without则是禁止组件,你可以根据自己实际需要选择with及without。输入如下命令,OpenResty将配置安装在/opt/openresty目录下(注意使用root用户),并激活luajit、httpiconvmodule并禁止httpredis2_module组件。

./configure--prefix=/opt/openresty\

--with-luajit\

--without-http_redis2_module\

--with-http_iconv_module

①如果出错误:

./configure:error:theHTTPrewritemodulerequiresthePCRElibrary.

安装:yuminstall-ypcre-devel

⑹在上一步中,最后没有什么error的提示就是最好的。若有错误,最后会显示error字样,具体原因可以看源码包目录下的build/nginx-VERSION/objs/autoconf.err文件查看。若没有错误,则会出现如下信息,提示下一步操作:

Typethefollowingcommandstobuildandinstall:

gmake

gmakeinstall

⑺编译、安装。根据上一步命令提示,输入gmake。

输入gmakeinstall.

⑻上面的步骤顺利完成之后,安装已经完成。可以在你指定的安装目录下看到一些相关目录及文件。

⑼设置环境变量

为了后面启动OpenResty的命令简单一些,不用在OpenResty的安装目录下进行启动,我们通过设置环境变量来简化操作。将OpenResty目录下的nginx/sbin目录添加到PATH中。就是打开文件/etc/profile,在文件末尾加入exportPATH=$PATH:/opt/openresty/nginx/sbin,若你的安装目录不一样,则做相应修改。注意:这一步操作需要重新加载环境变量才会生效,可通过命令source/etc/profile或者重启服务器等方式实现。

⑽启动openresty:

nginx-p/var/www/html/api/-c/etc/conf/nginx/nginx.conf

3. MySQL安装

⑴下载MySQL

cd /opt/src/

wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.17.tar.gz

tar -zxvf mysql-5.6.17.tar.gz

cd mysql-5.6.17

⑵我们先配置下MySQL的编译参数 一般我们就配置下安装路径就可以了 如你有特殊配置也可以在安装之后修改参数也可以的

cmake -DCMAKE_INSTALL_PREFIX=/opt/mysql

①如果报错: Curses library not found. Please install appropriate package

yum install ncurses-devel

安装了ncurses-devel包后,删除CMakeCache.txt

⑶编译需要较长的时间

make

make install clean

⑷添加mysql用户

useradd mysql -M -s /sbin/nologin

cd /opt/mysql/scripts

⑸安装数据库

./mysql_install_db --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data

cd /opt/mysql/support-files

⑹复制mysql管理脚本

cp mysql.server /etc/rc.d/init.d/mysql

⑺复制mysql配置文件

cp my-default.cnf /etc/my.cnf

⑻添加mysql服务

chkconfig --add mysql

⑼加入开机启动策略

chkconfig mysql on

service mysql start

4. PHP扩展PDO_MYSQL安装

参考:http://www.cnblogs.com/qq78292959/p/4084868.html

⑴下载pdo_mysql扩展的源码包。

下载页面在这里:http://pecl.php.net/package/PDO_MYSQL。

wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz

⑵解压缩。

tar -zxvf PDO_MYSQL-1.0.2.tgz

⑶进入解压后的目录,然后执行phpize。

/usr/local/php/bin/phpize

Configuring for:

PHP Api Version: 20100412

Zend Module Api No: 20100525

Zend Extension Api No: 220100525

⑷下面生成makefile

后面的两个参数必须要添加,一开始我没有添加,结果分别都提示找不到php-config和mysql的header文件。

./configure --with-php-config=/opt/php/bin/php-config --with-pdo-mysql=/opt/mysql

①MySQLdb ImportError: libmysqlclient.so.18解决方法

ln -s /opt/mysql/lib/libmysqlclient.so.18 /usr/lib64/libmysqlclient.so.18

说明:报告此错误时,也跟这个问题有关。libmysqlclient.so.18: cannot open shared object file: No such file or directory in Unknown on line 0

⑸在make之前还要做一个mysql的header文件的软连接。因为mysql安装的时候指定了目录,不做软连接的话,还是找不到header文件。

ln -s /opt/mysql/include/* /usr/local/include/

⑹make和make install。

make

make install

之后会提示如下,意思是扩展被安装到了如下目录里。

Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20100525/

⑺为了方便,我把pdo_mysql.so文件移动到extensions目录下。

mv /usr/local/php/lib/php/extensions/no-debug-zts-20100525/pdo_mysql.so

/usr/local/php/lib/php/extensions/

⑻随后就可以修改php.ini文件了

找到; extension_dir = “./”这一行,去掉注释,并修改路径。

extension_dir = “/usr/local/php/lib/php/extensions/”

这里经过我测试,发现php只会从该目录寻找扩展so,而并不寻找该目录下的子目录。所以之前我为了统一管理,把so文件都移动到该目录下。

找到; extension=php_pdo_mysql.dll这一行,去掉注释,并修改后面的文件名。

extension=pdo_mysql.so

文件名不太一样,这里要把php_前缀去掉,否则找不到文件。后面的dll是windows下的文件名,我们改成so。

⑼最后重启php-fpm就可以了。用phpinfo()查看发现已经生效了。

5. redis的安装

(1) 下载一个redis源码包。

wget http://download.redis.io/releases/redis-2.8.13.tar.gz

把tar.gz文件放到/opt/src目录.

(2) 解压后进入目录:

tar xzvf redis-2.8.19.tar.gz

(3) 编译:

make

make install

(4) 设置配置文件路径和简单配置:

mkdir -p /etc/conf/redis

cp redis.conf/etc/conf/redis

vi /etc/conf/redis/redis.conf

仅修改: daemonize yes (no-->yes)

然后就可以使用该配置文件启动redis server了:

/usr/local/bin/redis-server /etc/redis/redis.conf

查看redis是否启动:

ps aux | grep redis

设置开启自启动:

echo "/usr/local/bin/redis-server /etc/redis/redis.conf &" >> /etc/rc.local

6. redis扩展的安装

phpredis下载地址:https://github.com/nicolasff/phpredis

unzip phpredis-master.zip

cd phpredis-master

/opt/php/bin/phpize

./configure --with-php-config=/opt/php/bin/php-config

make

make install

vi /opt/php/lib/php.ini

加入

extension=redis.so

保存后重启Apache,如果是连接的nginx,则需要重启php-fpm。