热门标签 | 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]#



推荐阅读
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文讨论了在Spring 3.1中,数据源未能自动连接到@Configuration类的错误原因,并提供了解决方法。作者发现了错误的原因,并在代码中手动定义了PersistenceAnnotationBeanPostProcessor。作者删除了该定义后,问题得到解决。此外,作者还指出了默认的PersistenceAnnotationBeanPostProcessor的注册方式,并提供了自定义该bean定义的方法。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 本文介绍了在Mac上安装Xamarin并使用Windows上的VS开发iOS app的方法,包括所需的安装环境和软件,以及使用Xamarin.iOS进行开发的步骤。通过这种方法,即使没有Mac或者安装苹果系统,程序员们也能轻松开发iOS app。 ... [详细]
  • 本文讨论了如何使用Web.Config进行自定义配置节的配置转换。作者提到,他将msbuild设置为详细模式,但转换却忽略了带有替换转换的自定义部分的存在。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
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社区 版权所有