博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
搭建lnmp环境
阅读量:6569 次
发布时间:2019-06-24

本文共 4481 字,大约阅读时间需要 14 分钟。

hot3.png

一、php源码安装及php-fpm配置

  1. 下载php wget http://mirrors.sohu.com/php/php-5.6.2.tar.gz

  2. 安装php编译时所依赖的安装包

   yum -y install gcc gcc-c++ libxml2 libxml2-devel

   3.解压下载后的php-5.6.2.tar.gz

     tar -xf php-5.6.2.tar.gz

   4.

    现在开始配置php5.6,使用如下命令:

    cd php-5.6.2

    ./configure --enable-fpm --enable-mbstring --with-=/usr/local/mysql

   

    注意上述命令中--enable-fpm的作用是开启php的fastcgi功能即开启php-fpm功能,--with-        mysql=/usr/local/mysql是启用php支持mysql的功能,/usr/local/mysql是mysql的安装路径。

--enable-mbstring表示启用mbstring模块mbstring模块的主要作用在于检测和转换编码,提供对应的多字节操作的字符串函数。目前php内部的编码只支持ISO-8859-*、EUC-JP、UTF-8,其他的编码的语言是没办法在php程序上正确显示的,所以我们要启用mbstring模块。

同时我们也只是简单的开启和扩展php的一部分功能,其他需要的功能,请自行添加。

5.

配置完毕后,我们现在来编译php,使用make命令,如下:

make

6.

我们现在开始安装php,使用如下命令:

make install

安装完毕后,我们可以通过php –v命令查看是否安装成功。如下:

php –v

通过这样安装完毕后,你会发现在/usr/local/lib目录下没有php.ini文件。在这我们就先复制php安装文件提供的模版,如下:

cp php.ini-production /usr/local/lib/php.ini

7.

注意php.ini文件一般在/usr/local/lib/和/etc目录下。有关php安装完毕后,没有php.ini文件的,我们再另外一篇文章再介绍。

不要以为到这php的安装就完毕了,LNMP环境中的nginx是不支持php的,需要通过fastcgi来处理有关php的请求。而php需要php-fpm这个组件来支持。

在php5.3.3以前的版本php-fpm是以一个补丁包的形式存在的,而php5.3.3以后的php-fpm只需要在安装php-fpm开启这个功能即可。这个也就是前边,我们再配置php使用到的那个命令--enable-fpm。

php-fpm功能开启后,我们还需要配置php-fpm。其实php-fpm的配置文件在安装php时,已经为我们提供了一个配置文件的模版。该模版为/usr/local/etc/php-fpm.conf.default如下:

more /usr/local/etc/php-fpm.conf.default

8.

我们现在只需要复制一份该文件,并重命名为php-fpm.conf,如下:

cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf

为了让php-fpm已服务的形式启动。我们需要复制php安装目录下/sapi/fpm/init.d.php-fpm文件。如下:

cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

9.

过上图,我们也可以很清楚的看到php-fpm文件目前没有执行权限。赋予php-fpm执行权限,并启动php-fpm,如下:

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

/etc/init.d/php-fpm start

netstat -tunlp |grep 9000

10.php搞定!!!!!!!!

二、安装和配置nginx

安装Pcre(Nginx需要):

yum install pcre pcre-devel

################## Nginx 编译安装 ######################

groupadd www
useradd -g www www
mkdir -p /data/www
chown -R www:www /data/www
Nginx编译参数
./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module
make && make install

/usr/local/nginx/sbin/nginx // 启动Nginx

最后

现在再来配置nginx,使其支持php,如下:

location ~ \.php$ {

root html;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

三、安装mysql(yum命令安装)

rpm -qa | grep mysql  // 这个命令就会查看该操作系统上是否已经安装了mysql数据库

通过这个命令查看该系统中是否已经安装了mysql,可以看到我的系统比较干净,没有安装任何版本的mysql,如果你系统有安装,那可以选择进行卸载

[root@liang ~]# rpm -e mysql  // 普通删除模式[root@liang ~]# rpm -e --nodeps mysql  // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除

  使用yum命令进行mysql的安装

[root@liang ~]# yum list | grep mysql

然后通过下面的命令进行数据库的安装

[root@liang ~]# yum install -y mysql-server mysql mysql-devel

安装成功后,通过以下命令可以查看已安装数据库的版本信息

[root@liang ~]# rpm -qi mysql-server

     先通过:service  mysqld  status  查看mysql是否启动

      (没装mysql service 也可通过 /etc/rc.d/init.d/mysqld status查看

      若没启动,则启动mysql:service  mysqld  start

最后我们设置mysql的用户和密码

mysqladmin -u root password '123456'

此时我们就可以通过 mysql -u root -p 命令来登录我们的mysql数据库了

四、在php下增加mysql、pdo_mysql扩展(重点,由于本人是cents64位系统,一个隐藏问题搞了哥好久,下面会讲解这个蛋疼的问题!!!!!!!!)

(1)增加php的mysql扩展

首先去到php版本目录的ext文件下的msyql中,如我的php版本目录是PHP/php5.6.7,所以命令为cd /PHP/php5.6.7/ext/mysql

174727_DBZV_2394701.png

然后运行phpize命令生成configure文件,我的phpize文件在/usr/local/bin下,

所以直接运行/usr/local/bin/phpize命令生成configure

然后运行./configure --with-php-config=/usr/local/bin/php-config --with-mysql=/usr

这里最关键的是通过--with-mysql参数告诉mysql客户端的位置。这样才能生成mysql.so

期间你会发现可能有以下错误:

Cannot find MySQL header files under /usr/include/mysql

本来是系统找不到mysql客户端头文件导致的,可是我们用命令

find -name mysql.h找一下这个文件的位置,这尼玛的明明/usr/include/mysql就存在这个文件,但是为何说找不到呢?(ps:如果你找不到的话,请安装yum install mysql-devel)

将 /usr//mysql 目录下的mysql头文件链接到 /usr/local/include/ 的目录下:

ln -s /usr/include/mysql/* /usr/local/include/(具体位置自己根据自己的情况修改)

然后再运行一次

./configure --with-php-config=/usr/local/bin/php-config --with-mysql=/usr

后来尼玛有出错:

configure: error: Cannot find libmysqlclient under /usr.

Note that the MySQL client library is not bundled anymore!

原来原因是因为在64位的系统中,发现是在/usr/lib64/mysql/目录内的libmysqlclient.so.15.0.0做的软连接,PHP默认是去的/usr/lib/搜索,所以没有找到.(这就是我说的64位的蛋疼问题!!!!!!!!!!!!!!)

解决办法就是:
cp /usr/lib64/mysql/* /usr/lib/mysql/

最后再./configure --with-php-config=/usr/local/bin/php-config --with-mysql=/usr

终于没报错了!!!如图:

181542_iNkG_2394701.png

然后在make编译一下,在make install,成功后会输出mysql.o文件在以下目录:

181923_HlcY_2394701.png

把目录下的mysql扩展复制到php配置文件目录下,我的是在/usr/local/lib下,在配置文件php.ini中引入扩展项mysql。o然后重启php fpm即可。

(2)增加php的pdo_mysql扩展和上面一样操作,就是把在ext/mysql改变在ext/pdo_mysql目录下进行./configure --with-php-config=/usr/local/bin/php-config --with-pdo-mysql=/usr操作而已!!!!!!!

个人总结经验,求赞赞,搞了挺久!!!!!

转载于:https://my.oschina.net/u/2394701/blog/500310

你可能感兴趣的文章
maven第二节-maven基础-依赖管理
查看>>
create table as select 与create table后insert方式生成的undo与redo对比
查看>>
linux逻辑卷
查看>>
IO多路复用——select
查看>>
SSH原理与运用(二):远程操作与端口转发
查看>>
OSSIM5.2下载地址
查看>>
VS2010与.NET4.0 系列 1. 干净的Web.config文件
查看>>
VS2010与.NET4系列 8. ASP.NET 4 Web Forms的URL路由
查看>>
C#代码生成xml文档—C#基础回顾
查看>>
Java利用随机数生成字母
查看>>
《鸟哥私房菜》基础篇凌乱的笔记
查看>>
Android 应用程序窗体显示状态操作(requestWindowFeature()的应用)
查看>>
vmware命令集合
查看>>
[白开水]-shell-从数值N累加到M(N<M)-知识点
查看>>
STM32系统滴答_及不可不知的延时技巧 - (下)
查看>>
C与C++数组输出的区别
查看>>
OpenGL Shader in OpenCASCADE
查看>>
rz sz 用法
查看>>
回顾2017,展望2018
查看>>
使用jQuery来改善源代码浏览体验
查看>>