热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

lnmpphp源码在哪,LNMP架构详解——Mysql、PHP、Nginx源码编译过...

Mysql、PHP、Nginx源码编译过程一、源码安装php1、下载php及需要的安装包:libmcrypt-devel-2.5.8-9.el6.x86_64.rpm

Mysql、PHP、Nginx源码编译过程

一、源码安装php

1、下载php及需要的安装包:

libmcrypt-devel-2.5.8-9.el6.x86_64.rpm

libmcrypt-2.5.8-9.el6.x86_64.rpm

php-5.6.35.tar.bz2

tar jxf php-5.6.35.tar.bz2 ##解压php包

yum install libmcrypt-* -y

20190725233436197.png

20190725233357683.png

2019072523340786.png

2、解决依赖性

yum install net-snmp-devel curl-devel libxml2-devel libpng-devel libjpeg-devel freetype-devel gmp-devel openldap-devel gcc zlib-devel prce-devel -y###安装依赖包

20190725233337694.png

3.编译

./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --with-openssl --with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir --with-gmp --with-gettext --with-pear --enable-mysqlnd --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-inline-optimization --enable-soap --enable-ftp --enable-sockets --enable-mbstring --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-mcrypt --with-mhash

20190725233501486.png

20190725233609935.png

上图就是编译成功了,如果有报错就继续解决(缺什么就补什么)

4.安装

make && make install

20190725233755978.png

5.安装成功后回出现/var/local/lnmp/php/这个目录

20190725235839618.png

6。到这个目录下编辑php配置文件

cd /usr/local/lnmp/php/etc

cp php-fpm.conf.default php-fpm.conf

vim php-fpm.conf

25 pid = run/php-fpm.pid##pid行去掉注释

20190726000001482.png

修改时区

cp /root/php-5.6.35/php.ini-production /usr/local/lnmp/php/etc/php.ini

933 [Date]

934 ; Defines the default timezone used by the date functions

935 ; http://php.net/date.timezone

936 date.timezone =Asia/Shanghai

20190726111855266.png

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

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

useradd -s /sbin/nologin nginx

/etc/init.d/php-fpm start

20190726113028439.png

nginx编译安装:

1.获得并解压安装包

tar zxf nginx-1.17.0.tar.gz

20190726141923846.png

2.编译

需要解决的依赖

yum install prce-devel -y

./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio --user=nginx --group=nginx

编译完成

20190726141955423.png

安装

make && make install

安装完成会生成/usr/local/lnmp/nginx 这个目录

20190726143110548.png

修改配置文件如下

vim conf/nginx.conf

3 worker_processes 2; ##2表示cpu内核数

43 location / {

44 root html;

45 index index.php index.htm; ##添加php

46 }

65 location ~ \.php$ {

66 root html;

67 fastcgi_pass 127.0.0.1:9000;

68 fastcgi_index index.php;

69 # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; ##注释掉

70 include fastcgi.conf; ##改为fastcgi.conf 71 }

20190726145852217.png

201907261457581.png

检测配置文件语法有无错误

20190726150116110.png

开启nginx,查看端口

netstat -nlpt

20190726150740865.png

测试nginx

20190726150823905.png

nginx是没有问题的,现在我们写一个php页面,在来测试

cd /usr/local/lnmp/nginx/html

vi index.php

20190726151043202.png

再测试

20190726151110343.png

没有问题,说明php和nginx的结合成功了

三、mysql的编译安装

在编译安装前县查看自己的内存,需要20g,如果较小需要扩容

20190726151833769.png

安装必要的软件

yum install cmake-2.8.12.2-4.el6.x86_64.rpm -y ##选择合适的版本,编译需要的软件

yum install -y ncurses-devel ##安装依赖性

yum install gcc gcc-c++ -y

yum install -y bison

20190726152744195.png

20190726152812602.png

2019072615300696.png

20190726153025421.png

编译:

mysql

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql \

-DMYSQL_DATADIR=/usr/local/lnmp/mysql/data \

-DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DEXTRA_CHARSETS=all \

-DWITH_BOOST=boost/boost_1_59_0/

make && make install

mysql安装好后

将编辑生成的mysql启动脚本复制到系统服务的目录中,保证脚本有可执行权限

将mysql的配置文件复制到etc下

(养成好习惯,次类操作前先备份:备份/etc/my.cnf文件为/etc/my.cnf.bak)

[root@6 support-files]# cp mysql.server /etc/init.d/mysqld##设置启动方式

[root@6 support-files]# chmod +x /etc/init.d/mysqld

[root@6 support-files]# cp /etc/my.cnf /etc/my.cnf.bak

[root@6 support-files]# cp my-default.cnf /etc/my.cnf

cp: overwrite `/etc/my.cnf'? y

20190726164951571.png

编辑配置文件

[root@6 ~]# vim /etc/my.cnf

7 [mysqld]

18 basedir = /usr/local/lnmp/mysql

19 datadir = /usr/local/lnmp/mysql/data

20 # port = .....

21 # server_id = .....

22 socket = /usr/local/lnmp/mysql/data/mysql.sock

23

30

31 #sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

20190726165300854.png

建立mysql组和mysql组用户mysql

[root@6 ~]# groupadd -g 27 mysql

[root@6 ~]# useradd -u 27 -g 27 mysql

[root@6 ~]# id mysql

uid=27(mysql) gid=27(mysql) groups=27(mysql)

[root@6 ~]# chown mysql.mysql /usr/local/lnmp/mysql -R

2019072616575274.png

将编译生成的mysql二进制命令放进系统环境变量的文件中,保证可以直接使用二进制命令

[root@6 ~]# vim ~/.bash_profile

9

10 PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin

[root@6 ~]# source ~/.bash_profile #调用

[root@6 ~]# chown root /usr/local/lnmp/mysql -R

[root@6 ~]# cd /usr/local/lnmp/mysql

[root@6 ~]#mkdir data

[root@6 ~]# chown mysql /usr/local/lnmp/mysql/data -R

20190726171332580.png

20190726171339129.png

将mysql初始化,这时data目录下不能有任何文件,如果有的话删除

[root@6 ~]# mysqld --user=mysql --initialize

2019-07-25T06:03:42.149123Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).

2019-07-25T06:03:43.956664Z 0 [Warning] InnoDB: New log files created, LSN=45790

2019-07-25T06:03:44.299497Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.

2019-07-25T06:03:44.337093Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: f5814f35-aea1-11e9-888b-525400f36233.

2019-07-25T06:03:44.343367Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.

2019-07-25T06:03:44.346972Z 1 [Note] A temporary password is generated for root@localhost: d8KxxvopQp*S

20190726171959650.png

安全初始化,修改新密码

[root@6 mysql]# /etc/init.d/mysqld start

[root@6 ~]# mysql_secure_installation

这里的密码是上面的localhost:后的内容(高亮部分),复制过来,

然后修改新的密码

初始化数据库

[root@6 ~]# mysql -uroot -p

Enter password:

登陆查看databases

20190726172858431.png

mysql完成!!!

顺便来个论坛部署

获得一个前端的包

Discuz_X3.2_SC_UTF8.zip

[root@6 ~]# yum install unzip

[root@6 ~]# unzip Discuz_X3.2_SC_UTF8.zip -d /usr/local/lnmp/nginx/html/

[root@6 sbin]# netstat -tnlp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 21722/nginx

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 890/sshd

tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 966/master

tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 21715/php-fpm

tcp 0 0 :::22 :::* LISTEN 890/sshd

tcp 0 0 ::1:25 :::* LISTEN 966/master

tcp 0 0 :::3306 :::* LISTEN 21653/mysqld

查看php,nginx是否都开启了

20190725153022271.png

配置mysql的配置文件

[root@6 sbin]# vim /usr/local/lnmp/php/etc/php.ini

1013 pdo_mysql.default_socket=/usr/local/lnmp/mysql/data/mysql.sock

1162 mysql.default_socket =/usr/local/lnmp/mysql/data/mysql.sock

1221 mysqli.default_socket =/usr/local/lnmp/mysql/data/mysql.sock

[root@6 sbin]# /etc/init.d/php-fpm restart

Gracefully shutting down php-fpm . done

Starting php-fpm done

[root@6 sbin]#



推荐阅读
  • 在CentOS 7上部署WebRTC网关Janus
    在CentOS 7上部署WebRTC网关Janus ... [详细]
  • 本文提供了详细的 Filebeat 部署指南,涵盖了解压安装包、配置文件编辑以及启动服务等关键步骤。具体操作包括使用 `tar -zxvf filebeat-6.1.1-linux-x86_64.tar.gz` 解压安装包,并通过 `vi /home/elk/filebeat-6.4.2-linux/filebeat.yml` 编辑配置文件。此外,文章还介绍了最佳实践,帮助用户确保 Filebeat 的高效运行和数据传输的可靠性。 ... [详细]
  • 本文深入探讨了使用Puppet进行软件包分发与管理的方法。首先介绍了fpm这一跨平台的软件包制作工具,其简便的操作流程使得软件包的创建变得轻松快捷。fpm的项目地址为:https://github.com/jordansissel/fpm。通过结合Puppet和fpm,可以实现高效、可靠的软件包管理和部署。 ... [详细]
  • 在 CentOS 6.4 上安装 QT5 并启动 Qt Creator 时,可能会遇到缺少 GLIBCXX_3.4.15 的问题。这是由于系统中的 libstdc++.so.6 版本过低。本文将详细介绍如何通过更新 GCC 版本来解决这一问题。 ... [详细]
  • Linux下MySQL 8.0.28安装指南
    本文详细介绍了在Linux系统上安装MySQL 8.0.28的步骤,包括下载数据库、解压数据包、安装必要组件和启动MySQL服务。 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 在Ubuntu上安装MySQL时解决缺少libaio.so.1错误及libaio在MySQL中的重要性分析
    在Ubuntu系统上安装MySQL时,遇到了缺少libaio.so.1的错误。本文详细介绍了如何解决这一问题,并深入探讨了libaio库在MySQL性能优化中的重要作用。对于初学者而言,理解这些依赖关系和配置步骤是成功安装和运行MySQL的关键。通过本文的指导,读者可以顺利解决相关问题,并更好地掌握MySQL在Linux环境下的部署与管理。 ... [详细]
  • PHP自学必备:从零开始的准备工作与工具选择 ... [详细]
  • 在腾讯云服务器上部署Nginx的详细指南中,首先需要确保安装必要的依赖包。如果这些依赖包已安装,可直接跳过此步骤。具体命令包括 `yum -y install gcc gcc-c++ wget net-tools pcre-devel zlib-devel`。接下来,本文将详细介绍如何下载、编译和配置Nginx,以确保其在腾讯云服务器上顺利运行。此外,还将提供一些优化建议,帮助用户提升Nginx的性能和安全性。 ... [详细]
  • 在64位Linux系统上编译GCC时,可能会遇到一个错误,即在构建共享库过程中,`.libs/alloc.o` 文件中的重定位 `R_X86_64_32` 无法应用于 `.rodata.str1.8` 段。这一问题通常与目标文件的地址空间限制有关,需要通过调整编译选项或修改源代码来解决。具体来说,可以尝试使用 `-fPIC` 选项以生成位置无关代码,或者检查相关对象文件的链接方式。 ... [详细]
  • 2016-2017学年《网络安全实战》第三次作业
    2016-2017学年《网络安全实战》第三次作业总结了教材中关于网络信息收集技术的内容。本章主要探讨了网络踩点、网络扫描和网络查点三个关键步骤。其中,网络踩点旨在通过公开渠道收集目标信息,为后续的安全测试奠定基础,而不涉及实际的入侵行为。 ... [详细]
  • 在CentOS上部署并使用FFmpeg多媒体处理工具
    最近在进行音频处理时需要用到FFmpeg,本文将详细介绍如何在CentOS系统上部署并使用这一强大的多媒体处理工具。首先,从官方网站下载FFmpeg的最新版本,然后通过Xftp工具将下载的压缩包(如ffmpeg-4.3.1.tar.xz)传输到服务器上。接下来,解压文件并按照官方文档进行编译安装。安装完成后,可以通过命令行工具验证FFmpeg是否成功安装,并开始进行多媒体文件的转换和处理。此外,文章还将介绍一些常用的FFmpeg命令和参数,帮助用户快速上手。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有