搜索
首页后端开发php教程Centos7系统下LNMP编译安装的详细步骤

Centos7系统下LNMP编译安装的详细步骤

Jan 01, 2019 am 09:43 AM
linuxmysqlnginxphp

本篇文章给大家带来的内容是关于Centos7系统下LNMP编译安装的详细步骤,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

demo1

demo2

为了避免每次安装都要折腾好久,记录一下编译安装的详细教程

本文的PHP下载地址:

`wget http://cn2.php.net/distributions/php-7.2.0.tar.gz`

本文NGINX 下载地址:

`wget http://nginx.org/download/nginx-1.12.0.tar.gz`

查看当前的目录:pwd

安装NGINX的步骤:
第一步骤:安装编译需要依赖的文件

yum install gcc gcc-c++ openssl openssl-devel cyrus-sasl-md5

如果yum 提示没有yum 记得先安装yum.结果完成后进入下载目录的地址解压NGINX安装包

解压到当前目录: tar -zxvf nginx-1.12.0.tar.gz

进入到解压后的安装目录
        cd nginx-1.12.0

由于linux 编译命令是一整条执行,就不为难读者一行一行去复制了。

./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-pcre=../pcre-8.39 --with-zlib=../zlib-1.2.8

需要注意的是按照上的编译方式,第一次可以安装成功,卸载后第二次安装就为提示 pcre zlib 没有找到对应的路径错误。所以第二次编译路径的应该改为

./configure --prefix=/usr/local/nginx --with-http_ssl_module

需要注意到是配置安装的目录地址 -- 不是横杆 —

还有一些个性化目录的安装地址,本文采用默认的安装目录地址

配置好了安装路径,编译及安装

make && make install

没有什么意外基本上都会安装成功,安装配置路径有问题可以重置安装路径,在安装上面的步骤安装

make clean  重置编译路径时,先执行

安装完成后启动nginx :

[root@VM_31_16_centos down]# /usr/local/nginx/sbin/nginx

查看nginx 是否启动成功如下图所示:

ps -ef | grep nginx

根据服务的IP地址或者域名访问nginx,如下图表示启动成功

启动功能有两个步骤要执行

第一步骤:加入到开机运行
vim /etc/rc.local

添加的代码如下:

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf &

第二步骤:加入到环境变量

[root@VM_31_16_centos ~]# vim /etc/profile

在最后一行加入

export PATH="$PATH:/usr/local/nginx/sbin:"

wq : 保存后退出
执行跟新才能生效修改的内容:

source /etc/profile

这样就完成nginx 编译安装,加入环境变量就不用在安装目录去执行文件了。
直接用户全局命令就可以看下了

nginx -v

执行结果如下图所示:

nginx version: nginx/1.12.0

今天就写到这里,后面在补充跟新PHP编译安装
下面开始安装的PHP-FPM
首先安装编译所需的扩展包:

yum install gcc gcc-c++ libxml2 libxml2-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel  zlib zlib-devel glibc glibc-devel glib2 glib2-devel

不出意外基本上都会安装成功,进入PHP7.2 下载目录并且解压到当前目录

cd /down/php-7.2.0
tar -zxvf php-7.2.0.tar.gz

开始配置编译路径

./configure  --prefix=/usr/local/php7.2 --with-config-file-path=/usr/local/php7.2/etc--enable mbstring --with-libxml-dir=/usr --enable-soap --with-curl --with-zlib --with-gd --with-pdo-sqlite --with-pdo-mysql --with-mysqli --with-mysql-sock --enable-mysqlnd --disable-rpath  --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm   --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip  --with-pcre-regex --enable-ftp --with-kerberos --with-xmlrpc --with-fpm-user=www --disable-fileinfo

编译安装:

make && make install

在这里先别着急启动PHP-FPM,PHP要和Nginx配置文件相关关联起来才能实现解析php 文件
进入PHP的安装目录拷贝一份配置文件

cd /usr/local/php7.2/etc
cp php-fpm.conf.default php-fpm.conf
vim  php-fpm.conf

编辑内容如下:

pid = run/php-fpm.pid 去掉前面的#

根据 php-fpm.conf 最后的一行的配置,进入加载的配置文件

cd /usr/local/php7.2/etc/php-fpm.d
cp www.conf.default www.conf
vim www.conf

需要编辑修改的地址
user = www       加入的用户名
group = www   加入的用户组

保证系统监听的的端口是否冲突
listen = 127.0.0.1:9000 默认不需要修改

在这些基础设置都设置好之后,启动PHP-FPM

/usr/local/php7.2/sbin/php-fpm

查看进程是否启动:

ps -ef | grep php

可以看到不仅有root进程还有新增的www 用户组的进程,这样的PHP就启动成功了!!!
接下来就是来配置nginx 解析PHP文件配置了。

要保证和PHP配置的用户名和用户组是统一的。

进入Nginx的配置文件目录,编辑修改一下行

user  www www;
worker_processes  3;

**配置的路径地址一定是绝对路径地址**
同样启动Nginx也需要有跟PHP-FPM 一样的www 用户组
修改完配置之后,重启Nginx 服务器

/usr/local/nginx/sbin/nginx -s reload
查看nginx 是否已经启动了更改的配置
ps -ef | grep nginx
执行的结果如下图所示就说明,已经配置成功

根据域名或者对应的IP地址执行PHP文件。执行结果成功如下图,可以成功解析PHP文件

接下来开始安装mysql,因为的mysql 编译时间较长,选择了yum 安装节省时间达到的效果一致

wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm 
rpm -ivh mysql57-community-release-el7-8.noarch.rpm 
yum -y install mysql-server

按照步骤就可以安装成功。yum 安装也可以指定目录,这样会改变MySQL默认的启动配置文件的路径地址,不适合新手安装。

指定安装目录: yum --installroot=/usr/local/mysql --releasever=/ -y install mysql-server

MySQL启动和关闭

开启MySQL服务器方式一service mysqld restart
开启MySQL服务器方式二:    systemctl start mysqld
关闭MySQL服务器:    systemctl stop mysqld

MySQL第一次登陆会随机生成一个随机登陆密码,查看方式如下:

grep "password" /var/log/mysqld.log

登陆成功后,可以手动修改登陆密码,记得刷新权限

方式一:alter user 'root'@'localhost' identified by '123456';
方式二:update mysql.user set authentication_string=password('root') where user='root';

刷新权限: flush privileges

最后一个就是开启远程链接权限了,mysql默认是没有开始远程连接属性的。下面是仅供测试连接,开放了所有连接权限

mysql> use mysql;
Database changed
mysql> grant all privileges  on *.* to root@'%' identified by "password";
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> select host,user,password from user;
host user password
localhost root *A731AEBFB621E354CD41BAF207D884A609E81F5E
192.168.1.1 root *A731AEBFB621E354CD41BAF207D884A609E81F5E
% root *A731AEBFB621E354CD41BAF207D884A609E81F5E

3 rows in set (0.00 sec)

以上是Centos7系统下LNMP编译安装的详细步骤的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:segmentfault.。如有侵权,请联系admin@php.cn删除
您如何防止与会议有关的跨站点脚本(XSS)攻击?您如何防止与会议有关的跨站点脚本(XSS)攻击?Apr 23, 2025 am 12:16 AM

要保护应用免受与会话相关的XSS攻击,需采取以下措施:1.设置HttpOnly和Secure标志保护会话cookie。2.对所有用户输入进行输出编码。3.实施内容安全策略(CSP)限制脚本来源。通过这些策略,可以有效防护会话相关的XSS攻击,确保用户数据安全。

您如何优化PHP会话性能?您如何优化PHP会话性能?Apr 23, 2025 am 12:13 AM

优化PHP会话性能的方法包括:1.延迟会话启动,2.使用数据库存储会话,3.压缩会话数据,4.管理会话生命周期,5.实现会话共享。这些策略能显着提升应用在高并发环境下的效率。

什么是session.gc_maxlifetime配置设置?什么是session.gc_maxlifetime配置设置?Apr 23, 2025 am 12:10 AM

thesession.gc_maxlifetimesettinginphpdeterminesthelifespanofsessiondata,setInSeconds.1)它'sconfiguredinphp.iniorviaini_set().2)abalanceIsiseededeedeedeedeedeedeedto to to avoidperformance andununununununexpectedLogOgouts.3)

您如何在PHP中配置会话名?您如何在PHP中配置会话名?Apr 23, 2025 am 12:08 AM

在PHP中,可以使用session_name()函数配置会话名称。具体步骤如下:1.使用session_name()函数设置会话名称,例如session_name("my_session")。2.在设置会话名称后,调用session_start()启动会话。配置会话名称可以避免多应用间的会话数据冲突,并增强安全性,但需注意会话名称的唯一性、安全性、长度和设置时机。

您应该多久再生一次会话ID?您应该多久再生一次会话ID?Apr 23, 2025 am 12:03 AM

会话ID应在登录时、敏感操作前和每30分钟定期重新生成。1.登录时重新生成会话ID可防会话固定攻击。2.敏感操作前重新生成提高安全性。3.定期重新生成降低长期利用风险,但需权衡用户体验。

如何在PHP中设置会话cookie参数?如何在PHP中设置会话cookie参数?Apr 22, 2025 pm 05:33 PM

在PHP中设置会话cookie参数可以通过session_set_cookie_params()函数实现。1)使用该函数设置参数,如过期时间、路径、域名、安全标志等;2)调用session_start()使参数生效;3)根据需求动态调整参数,如用户登录状态;4)注意设置secure和httponly标志以提升安全性。

在PHP中使用会议的主要目的是什么?在PHP中使用会议的主要目的是什么?Apr 22, 2025 pm 05:25 PM

在PHP中使用会话的主要目的是维护用户在不同页面之间的状态。1)会话通过session_start()函数启动,创建唯一会话ID并存储在用户cookie中。2)会话数据保存在服务器上,允许在不同请求间传递数据,如登录状态和购物车内容。

您如何在子域中分享会议?您如何在子域中分享会议?Apr 22, 2025 pm 05:21 PM

如何在子域名间共享会话?通过设置通用域名的会话cookie实现。1.在服务器端设置会话cookie的域为.example.com。2.选择合适的会话存储方式,如内存、数据库或分布式缓存。3.通过cookie传递会话ID,服务器根据ID检索和更新会话数据。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版