LNMP 之PHP安装步骤

本文详细介绍了在CentOS上从零开始搭建LNMP(Linux+Nginx+MySQL+PHP)环境的全过程,包括安装和配置Nginx、MySQL、PHP及其相关依赖库,以及如何使这些组件协同工作。特别关注了PHP的编译安装过程,涵盖了依赖库的安装、参数配置、错误排查及解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LNMP 之 PHP安装操作步骤

1、==>备份默认源==>下载mirrors.163.com源==>yum安装epel源

## 也可用别的源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS6-Base-163.repo 
##必要
yum install epel-release -y 

====>查看依赖库

##查看依赖库
rpm -aq pcre pcre-devel openssl openssl-devel zlib-devel \
libxml2-devel libjpeg-turbo-devel libpng-devel libcurl-devel libxslt-devel \
freetype-devel gd-devel mhash mhash-devel mcrypt libmcrypt-devel

##安装依赖库
yum install pcre pcre-devel openssl openssl-devel zlib-devel \
libxml2-devel libjpeg-turbo-devel libpng-devel libcurl-devel libxslt-devel \
freetype-devel gd-devel mhash mhash-devel mcrypt libmcrypt-devel -y

mhash、mhash-devel加密扩展库、mcrypt加密扩展库
mhash mhash-devel mcrypt libmcrypt-devel

2、====>安装 libiconv-devel库,需要第三方;

##安装 libiconv-devel库

##cd 切换到下载目录下载
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
tar zxf libiconv-1.14.tar.gz  
cd libiconv-1.14
./configure --prefix=/usr/local/libiconv
make && make install

**libiconv 编译报错
切换到libiconv/目录下 执行 ***

cd srclib
sed -i -e '/gets is a security/d' ./stdio.in.h

============LNMP==============================================
3、====>配合nginx安装PHP-5.3.27参数 ===> --with-mysql=mysqlnd \

编译PHP
##基于ngxin安装加这项--with-mysql=mysqlnd,否则则是基于mysql安装

tar zxf php-5.3.27.tar.gz
cd php-5.3.27/
./configure \
--prefix=/usr/local/php-5.3.27 \
--with-mysql=/usr \
--with-iconv-dir=/usr/local/libiconv \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--enable-xml \
--disable-rpath \
--enable-safe-mode \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--with-curlwrappers \
--enable-mbregex \
--enable-fpm \
--enable-mbstring \
--with-mcrypt \
--with-gd \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--enable-short-tags \
--enable-zend-multibyte \
--enable-static \
--with-xsl \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--enable-ftp
 --with-fpm-user=nginx
 --with-fpm-group=nginx 这里要注意 , 如果使用别的用户则更改成别的用户名
先执行以下一种再make否则会报错
##这是网上转载的方法,为防止编译报错的解决方法
## 目录没有用到
ln -s /application/mysql/lib/libmysqlclient.so.18 /usr/lib64/
touch ext/phar/phar.phar
##目前测试来看,/etc/ld.so.conf.d 里已经自动加上了mysql的库指向文件
##所以这个方法暂时也没用过,不排除老版本必须修改
echo "/application/mysql/lib" >>/etc/ld.so.conf
ldconfig
进行编译安装
make && make install

##这条是为了创建软链接方便 管理,排除版本命令因素
ln -s /usr/local/php-5.3.27/   /server/app/php

[root@Lnmp tools]# ll php-5.3.27/php.ini*
-rw-r--r-- 1 101 101 69606 Jul 11  2013 php-5.3.27/php.ini-development  ==>开发环境
-rw-r--r-- 1 101 101 69627 Jul 11  2013 php-5.3.27/php.ini-production   ==>生产环境

##这条是从PHP包里复制php.ini-development   php.ini-production 
##php 配置文件 
cp /server/data/php-5.3.27/php.ini* /usr/local/php-5.3.27/lib/php.ini

##php-fpm.conf.default默认只有一个default文件 ,创建新的php-fpm.conf.default
##php进程的配置文件 
cd /usr/local/php-5.3.27/etc
mv php-fpm.conf.default php-fpm.conf
PHP启动关闭重启等
/usr/local/php/sbin/php-fpm -t          ====>检查语法
/usr/local/php/sbin/php-fpm             ====>启动PHP
netstat -lntup|grep php-fpm                 ====>查看服务进程
## 一个php-fpm master进程 两个 pool进程
ps -ef|grep php-fpm|grep -v grep

默认端口 127.0.0.1:9000 php.master

开机自启动:
##在 /etc/rc.local 添加
/usr/local/php/sbin/php-fpm
/usr/local/nginx/sbin/nginx

链接NGINX

nginx 于PHP 链接 (通过fastCGI) PHP进程默认端口 9000
vim /usr/local/nginx/conf/nginx.conf

##对应的站点加这个location
location ~.*\.(php|php5)?$ {
                root html/bbs;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                include fastcgi.conf;
        }

cd /usr/local/nginx/html/bbs
echo echo "<?php phpinfo();?>" > test_info.php
/usr/local/nginx/sbin/nginx -t 
/usr/local/nginx/sbin/nginx -s reload

访问 bbs.etiantian.org/test_info.php

测试PHP与Nginx连通性

    vim /usr/local/nginx/conf/nginx.conf
    ##对应的站点加这个location
    location ~.*\.(php|php5)?$ {
                root html/bbs;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                include fastcgi.conf;
        }

cd /usr/local/nginx/html/bbs
echo echo "<?php phpinfo();?>" > test_info.php
/usr/local/nginx/sbin/nginx -t 
/usr/local/nginx/sbin/nginx -s reload

访问 bbs.etiantian.org/test_info.php

测试PHP与Mysql连通性

在对应的html里创建这处 *.php文件 ,然后 通过浏览器访问,成功则代表链接正常

#### PHP7
<?php
$conn = new mysqli("cdb-xxxxxxxx.bj.tencentcdb.com:10016", "root", "woxxxxxxxxxxx7l!#");
if ($conn->connect_error) {
die("connect error: " . $conn->connect_error);
}
echo "connect success!";
?>
###PHP5
<?php
$link_id=mysql_connect("cdb-xxxxxxxx.bj.tencentcdb.com:10016", "root", "woxxxxxxxxxxx7l!#") or mysql_error();
if($link_id){
             echo "mysql successful! \n";
}else{
             echo mysql_error();
}
?>

常见的错误

----------------------------------------------------------------------------------------------------------

1.编译时找不到mysql.h头文件

编译报错 未找到 头文件 Cannot find MySQL header files under /usr/bin/mysql ;

解决方法

find / -name mysql.h
/usr/include/mysql/mysql.h
查找到mysql.h文件,更改参数为--with-mysql=/usr,如果find找不到,安装mysql-devel包,yum install mysql-devel
------------------------------------------------------------------------------------------------------------

2.编译报错 未找到 libmysqlclient.so等库

解决方法一

php编译时默认是在/usr/lib下面找库文件 ,mysql默认是在/usr/lib64/mysql/下面找库文件
把so文件拷贝到/usr/lib下

cp /usr/lib64/mysql/*.so    /usr/lib/
解决方法二 不建议

直接省略参数 直接./configure 编译

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值