lnmp环境搭建

接着上一篇lnmp环境搭建之mysql篇,接下来介绍lnmp环境搭建的Nginx和PHP的安装和配置。

先介绍安装前的准备,因为是最小化安装,所以就连gcc等最基础命令都没有,而使用源码安装时一些基本的命令是必须的。因此这里建议使用yum安装开发工具组:

yum grouplist # 查看有没有安装Development Tools组

yum -y groupinstall "Development Tools" # 没有的话就可以运行此命令安装了

 

接下来可以先介绍Nginx的安装,

Nginx官网:http://nginx.org/

在官网随便找个最新版本的下载下来就行:

cd /usr/local/src/ # 习惯性地把源码包放在src目录下
wget -c http://nginx.org/download/nginx-1.13.5.tar.gz # 下载最新版本

如果提示-bash: wget: command not found,就:

yum –y install wget

下载完成后就是以下的一波操作:

tar -zxf nginx-1.13.5.tar.gz
cd nginx-1.13.5
./configure # 配置时如果有错误一般都是缺少了什么开发包,yum装一下就行了:

表示缺少pcre开发包,执行:yum -y install pcre-devel,安装完成后再配置:./configure

表示缺少zlib开发包,执行:yum -y install zlib-devel,安装完成后再配置:./configure

没有错误,配置完成后执行编译命令:make

编译安装命令:make install

然后就安装完成了。

/usr/local/nginx/sbin/nginx # 尝试性地启动

ps aux|grep nginx # 查看有没有启动成功,下图表示启动成功了

curl 127.0.0.1 # curl本机地址,下图表示成功地安装了Nginx:

 

以下是Nginx的启动|停止等命令:

/usr/local/nginx/sbin/nginx

/usr/local/nginx/sbin/nginx -s
stop(quit|reload) 停止|重新加载配置

/usr/local/nginx/sbin/nginx -t 测试配置

/usr/local/nginx/sbin/nginx -V 显示版本和配置信息

 

最后就是PHP的安装了,

PHP官网:http://www.php.net/

这里安装的是PHP5.6

cd /usr/local/src/ # 再次习惯性地把源码包放在src目录下

wget -c http://hk1.php.net/distributions/php-5.6.31.tar.gz
# 下载源码包

tar -zxf php-5.6.31.tar.gz # 解压

cd php-5.6.31 # 进入源码目录,总是少不了这两步

./configure --prefix=/usr/local/php
--enable-fpm --with-mcrypt \

--enable-mbstring --enable-pdo --with-curl
--disable-debug  --disable-rpath \

--enable-inline-optimization
--with-bz2  --with-zlib --enable-sockets
\

--enable-sysvsem --enable-sysvshm
--enable-pcntl --enable-mbregex \

--with-mhash --enable-zip --with-pcre-regex
--with-mysql --with-mysqli \

--with-gd --with-jpeg-dir
--with-freetype-dir --enable-calendar --with-pdo-mysql=/usr/local/mysql # 要配置一下,--enable-fpm:启用php-fpm,最后一项—with-pdo-mysql=/usr/local/mysql,这是使用PDO连接PHP和mysql,=号后面是mysql的basedir,一般都是这个目录,不过如果是yum安装的话就要改成—with-pdo-mysql=/usr,如果不确定在哪个目录可以进入mysql命令界面,执行:show variables like '%dir%';

如果之前没有安装mysql的话可以把—with-pdo-mysql这项去掉,以后还可以编译安装,这在后面提到。

如果确定没问题就可以开始配置工作了,当然配置的时候难免会有没安装的包:

configure: error: xml2-config not found.
Please check your libxml2 installation.

yum -y install libxml2-devel

 

configure: error: Please reinstall the
BZip2 distribution

yum -y install bzip2-devel

 

configure: error: Please reinstall the
libcurl distribution

yum -y install libcurl-devel

 

configure: error: jpeglib.h not found.

yum -y install libjpeg-turbo-devel

 

configure: error: png.h not found.

yum -y install libpng-devel

 

configure: error: freetype-config not
found.

yum -y install freetype-devel

 

configure: error: mcrypt.h not found.
Please reinstall libmcrypt.

yum -y install libmcrypt # 如果没有相关包的话只能下载源码包安装,执行以下操作:

wget -c ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz
# 下载libmcrypt源码包

tar -zxf libmcrypt-2.5.7.tar.gz # 解压

cd libmcrypt-2.5.7 # 进入源码目录

./configure # 配置

make # 编译

make install # 编译安装

 

configure: error: Don't know how to define
struct flock on this system, set --enable-opcache=no

配置时加上--enable-opcache=no

 

configure: error: PDO_MYSQL configure
failed, MySQL 4.1 needed. Please check config.log for more information.

把--with-pdo-mysql=/usr改成--with-pdo-mysql就应该没问题,如果还有问题先去掉--with-pdo-mysql=/usr,之后再添加pdo_mysql扩展。

 

configure: error: off_t undefined; check
your library configuration

echo "/usr/local/lib

/usr/local/lib64

/usr/lib

/usr/lib64" >> /etc/ld.so.conf
&& ldconfig –v

 

make # 配置完编译

make install # 编译安装

/usr/local/php/bin/php –v # 出现版本信息就代表成功安装了

 

/usr/local/php/sbin/php-fpm # 尝试性地启动php-fpm进程

ps aux|grep php-fpm # ps一下,查看有没有php-fpm进程,如下表示启动成功,第一条为php-fpm的主进程:

 

以下是php-fpm的启动|停止等命令:

/usr/local/php/sbin/php-fpm # 启动php-fpm

kill -USR2 id #重启php-fpm,id为php-fpm的master主进程号

kill -[INT|TERM] id #立刻终止php-fpm

kill -QUIT #平滑终止

kill -USR1 #重新打开日志文件

 

到此PHP就安装完了,接下来就是配置。

 

首先是配置Nginx运行PHP

 

groupadd www # 新增www用户组

useradd -g www -s /bin/false www # 新增www用户

vi /usr/local/nginx/conf/nginx.conf # 修改nginx.conf文件

将user改成www用户,www用户组,并去掉#号:

新增配置如下,框框内的为新增内容,并把原来的80端口改成81或改成其他端口,以免冲突,:

/usr/local/nginx/sbin/nginx –t # 测试nginx.conf文件是否有语法错误

/usr/local/nginx/sbin/nginx -s reload # 如果没有错误就执行此命令让nginx重载

 

cat /usr/local/php/etc/php-fpm.conf.default
|grep -v '^[;#]'|grep -v '^$'|grep -v '^ $' >
/usr/local/php/etc/php-fpm.conf # 配置php-fpm.conf文件

vi /usr/local/php/etc/php-fpm.conf # 修改php-fpm.conf配置文件

框框内表示要修改或增加的信息:

修改完保存退出,并重启php-fpm:

ps aux|grep php-fpm # 重启前要先知道php-fpm的主进程id是多少

kill -USR2 21956 # 重启php-fpm命令,这里php-fpm的主进程id是21956

ps aux|grep php-fpm # 重启完看看php-fpm的主进程id是否变了,不过这步一般都是多余的

详细操作及效果如下图:

 

如果都修改并启动成功就可以测试了:

vi /home/www/test.php # 随便echo一些信息

curl 127.0.0.1/test.php # curl测试,如果出现hello
world就说明成功了。

 

 

然后我们再马不停蹄地进行下一步:通过PDO连接mysql。

 

PDO扩展安装

cd /usr/local/src/php-5.6.31/ext/pdo_mysql #
进入源码目录

/usr/local/php/bin/phpize # 安装PHP扩展都需要运行这个命令

./configure
--with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql # 配置

make # 编译

make install # 编译安装

/usr/local/php/bin/php -i|grep
"php.ini" # 查看PHP读取php.ini的路径,下条复制到这个目录:

cp
/usr/local/src/php-5.6.31/php.ini-development /usr/local/php/lib/php.ini # 复制php.ini

vi /usr/local/php/lib/php.ini # 编辑php.ini文件,加入pdo_mysql扩展,加入以下两行:

extension=pdo_mysql.so

extension_dir =
"/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226"

保存退出重启php-fpm:

ps aux|grep php-fpm

kill -USR2 id # id为主进程号

 

最后就是测试一下:

vi /home/www/pdo_mysql_test.php

<?php

$db_host = '127.0.0.1';

$db_name = 'mysql';

$db_user = 'root';

$db_pass = 'root';

$db_port = 3306;

$db_charset = 'utf8';

 

try{

 
$dbh = new
PDO("mysql:host=$db_host;dbname=$db_name;port=$db_port;charset=$db_charset",
$db_user, $db_pass);

}catch(PDOException $e){

 
exit('error: '. $e->getMessage());

}

$sql = 'show databases';

$query = $dbh->query($sql);

$query->setFetchMode(PDO::FETCH_ASSOC);

$result = $query->fetchAll();

print_r($result); // 打印所有数据库名称

 

$dbh = null; // 关闭连接

curl 127.0.0.1/pdo_mysql_test.php # 保存退出,运行此命令,如果出现数据库信息就说明没问题

 

phpMyAdmin

cd /home/www/ # 进入www目录

wget -c https://files.phpmyadmin.net/phpMyAdmin/4.7.4/phpMyAdmin-4.7.4-all-languages.tar.gz
# 下载phpMyAdmin到当前目录

tar -zxf
phpMyAdmin-4.7.4-all-languages.tar.gz # 解压

mv phpMyAdmin-4.7.4-all-languages
phpmyadmin # 重命名

systemctl stop firewalld # 关闭防火墙

用局域网内的机器访问:

ip/phpmyadmin

 

到此所有工作都完成了。

时间: 2024-08-03 02:55:32

lnmp环境搭建的相关文章

LNMP环境搭建详解

物理环境: 操作系统:centos 5.5 32位 mysql数据库:mysql-5.1.58.tar.gz nginx软件包:nginx-0.7.65.tar.gz PHP软件包:php-5.3.8.tar.gz 1 安装mysql数据库 tar -zxvf mysql-5.1.58.tar.gz cd mysql-5.1.58 ./configure  --prefix=/usr/local/mysql  --enable-assembler  --with-extra-charsets=c

详解CentOS 7.0源码包搭建LNMP 实际环境搭建_Linux

Centos7+Nginx1.11.7+MySQL5.7.16+PHP7.1.0+openssl-1.1.0c 一.linux 系统限制配置 1.关闭系统防火墙     systemctl stop firewalld.service 关闭防火墙 systemctl disable firewalld.service 禁用防火墙 2.关闭SElinux sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config setenforce

centos 7.2下搭建LNMP环境教程_php实例

本机环境:服务器是阿里云ECS:使用的镜像是:公共镜像 CENTOS 7.2  一.nginx安装 1.下载对应当前系统版本的nginx包(package) ​ wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm 2.建立nginx的yum仓库(默认yum是没有nginx的) ​ rpm -ivh nginx-release-centos-7-0.el7.n

自动安装lnmp环境的脚本

#!/bin/bash #Authors are from JC #From the region BeiJing-China #Contact:285221465@qq.com # Source function library. . /etc/rc.d/init.d/functions cd $shell shell=/shell/script if [ -d /shell/script ];then action "shell安装目录已存在:" /bin/true else mk

lamp环境搭建

记录关于lamp搭建的流程,这里只介绍Apache和PHP的安装,MySQL的安装请移步:lnmp环境搭建之mysql篇. Apache的下载网址:http://httpd.apache.org/download.cgi Apache2.4文档:http://httpd.apache.org/docs/2.4/zh-cn/ PHP官网:http://www.php.net/ 这里安装的是Nginx2.4.28 PHP5.6 MySQL5.7.18   Linux版本:   Mysql版本:  

阿里云ECS php运行环境lnmp环境配置步骤详解

正式版的ECS购买时配置的是公共镜像CentOs6.5 64位,要搭建的是LNMP运行环境.使用的是官网下载的一键安装包linux_setup_1.4.1.zip进行安装: 安装rzsz(可以直接通过x-shell界面选择本地windows系统上传文件) # yum install -y lrzsz 上传linux_setup_1.4.1.zip并解压. 进行安装(可参照压缩包中的pdf文档). # chmod –R 777 sh-1.4.1 # cd sh-1.4.1 # ./install.

CentOS6.7系统中配置LNMP环境_Linux

1:查看环境: [root@localhost ~]# cat /etc/redhat-release 2:关掉防火墙 #重启后生效开启 [root@localhost ~]# chkconfig iptables off or #即时生效,重启后失效开启 [root@localhost ~]# service iptables stop 关闭selinux #即时生效,重启后失效 [root@localhost ~]#setenforce 0 //将SELINUX=enforcing修改为di

企业级LNMP架构搭建实例(基于Centos6.x)

1.1 部署LNMP架构说明 1.1.1 LNMP架构内容 01.部署linux系统 02.部署nginx网站服务 03.部署mysql数据库服务 04.部署php动态解析服务 1.1.2 配置LNMP架构步骤 01.配置Nginx配置文件 02.配置mysql数据库信息(SQL语句) 03.配置wordpress博客网站 1.1.3 架构服务器串联 01.数据库数据信息迁移(web服务器上的mysql数据 迁移到10.0.0.51 数据库服务器上) 02.将本地储存数据挂载到NFS共享储存服务

源码搭建LNMP环境

LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构,Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器.这四种软件均为免费开源软件,组合到一起,成为一个免费.高效.扩展性强的网站服务系统. LAMP(Linux+Apache+Mysql+Perl/PHP/Python)也是一组常用来搭建动态网站或者服务器的开源软件,虽然nginx和apache都能实现网站服务器的搭建,但是两者还是有不小的差距的,下面我们来简单介绍一