centos6.8下安装部署LNMP-(nginx1.8.0+php5.6.10+mysql5.6.12)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

在平时运维工作中,经常需要用到LNMP应用框架。
以下对LNMP环境部署记录下:

1)前期准备:为了安装顺利,建议先使用yum安装依赖库
[root@opd ~]#yum install -y make cmake gcc gcc-c++ autoconf automake libpng-devel libjpeg-devel zlib libxml2-devel ncurses-devel bison libtool-ltdl-devel libiconv libmcrypt mhash mcrypt libmcrypt-devel pcre-devel openssl-devel freetype-devel libcurl-devel

2)安装nginx
[root@opd ~]#cd /opt/src
[root@src ~]#wget http://nginx.org/download/nginx-1.8.0.tar.gz
[root@src ~]#tar -zxvf nginx-1.8.0.tar.gz
[root@src ~]#cd nginx-1.8.0
添加www用户,其中-M参数表示不添加用户家目录,-s参数表示指定shell类型
[root@nginx-1.8.0 ~]#useradd www -M -s /sbin/nologin
[root@nginx-1.8.0 ~]#vim auto/cc/gcc
将这句注释掉取消Debug编译模式 大概在179行
#CFLAGS="$CFLAGS -g"

我们再配置下nginx编译参数
[root@nginx-1.8.0 ~]#./configure --prefix=/opt/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module
[root@nginx-1.8.0 ~]#make
[root@nginx-1.8.0 ~]#make install clean
添加开机自启动
[root@nginx-1.8.0 ~]#vim /etc/rc.local
在这个文件里面添加:/opt/nginx/sbin/nginx
[root@nginx-1.8.0 ~]#/opt/nginx/sbin/nginx

----------------------------------顺便说下:Centos7采用yum方式安装nginx-----------------------------------
centos7系统库中默认是没有nginx的rpm包的,所以我们自己需要先更新下rpm依赖库
1)使用yum安装nginx需要包括Nginx的库,安装Nginx的库
# rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

2)使用下面命令安装nginx
# yum install nginx

3)启动Nginx
# service nginx start

# systemctl start nginx.service
---------------------------------------------------------------------------------------------------------

3)安装PHP
由于PHP需要这些类库的支撑
先下载PHP
[root@opd ~]#cd /opt/src/
[root@src ~]#wget http://cn2.php.net/distributions/php-5.6.10.tar.gz
[root@src ~]#tar -zxvf php-5.6.10.tar.gz
[root@src ~]#cd php-5.6.10
我们先配置下PHP的编译参数
[root@php-5.6.10 ~]#./configure --prefix=/opt/php --with-mysql --with-mysqli --with-iconv-dir --with-zlib --with-libxml-dir --enable-xml --with-curl --enable-fpm --enable-mbstring --with-gd --with-openssl --with-mhash --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-libdir=/usr/lib64 --with-jpeg-dir=/usr/lib64 --with-freetype-dir=/usr/lib64 --with-png-dir=/usr/lib64
[root@php-5.6.10 ~]#make
[root@php-5.6.10 ~]#make install clean
复制php.ini
[root@php-5.6.10 ~]#cp php.ini-development /opt/php/lib/php.ini
[root@php-5.6.10 ~]#cd /opt/php/etc/
[root@php-5.6.10 ~]#cp php-fpm.conf.default php-fpm.conf        //在php-fpm.conf文件中可以定义php的服务端口、进程启动的用户和组权限(最好和nginx服务启动权限一直)等。
使用PHP-FPM管理脚本,在编译包里面已经配置好了,只需要复制到/etc/init.d/中即可
[root@php-5.6.10 ~]#cd /opt/src/php-5.6.10/sapi/fpm/
[root@php-5.6.10 ~]#cp init.d.php-fpm /etc/init.d/php-fpm
[root@php-5.6.10 ~]#chmod +x /etc/init.d/php-fpm
启动php-fpm
[root@php-5.6.10 ~]#service php-fpm start
加入开机启动策略
[root@php-5.6.10 ~]#chkconfig --add php-fpm
[root@php-5.6.10 ~]#chkconfig php-fpm on

4)安装MySQL (可参考:centos 6x系统下源码安装mysql操作记录
MySQL5.7.x以上的版本不支持本安装新增了boost引擎,后续我会更新……
先下载MySQL
[root@opd ~]#cd /opt/src/
[root@src ~]#wget http://cdn.mysql.com//archives/mysql-5.6/mysql-5.6.21.tar.gz
[root@src ~]#tar -zxvf mysql-5.6.12.tar.gz
[root@src ~]#cd mysql-5.6.12
我们先配置下MySQL的编译参数 一般我们就配置下安装路径就可以了 如你有特殊配置也可以在安装之后修改参数也可以的
[root@mysql-5.6.12 ~]#cmake -DCMAKE_INSTALL_PREFIX=/opt/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=ON -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DCOMPILATION_COMMENT='production environment' -DWITH_READLINE=ON -DSYSCONFDIR=/opt/mysql -DMYSQL_UNIX_ADDR=/opt/mysql/mysql.sock -DMYSQL_DATADIR=/opt/data

-------------------------------------------------------------------------------------------------------------------------------------
注意:mysql5.5以上的编译就用cmake了,而不是使用./configure了。
cmake编译的优化参数说明如下:
-------------------------------------
-DCMAKE_INSTALL_PREFIX=dir_name       安装的主目录
-DDEFAULT_CHARSET          字符集,默认字符集是latin1
-DDEFAULT_COLLATION=collation_name       服务校对,默认的是latin1_swedish_ci,可以通过SHOW COLLATION语句查看哪个校对匹配的字符集
-DENABLED_LOCAL_INFILE       是否打开LOAD DATA INFILE的LOCAL参数
-DWITH_INNOBASE_STORAGE_ENGINE=1       将INNODB存储引擎编译进去
-DWITHOUT_FEDERATED_STORAGE_ENGINE=1       将FEDERATED存储引擎编译进去
-DWITH_BLACKHOLE_STORAGE_ENGINE=1       将BLACKHOLE存储引擎编译进去
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1      不编译EXAMPLE存储引擎
-DWITH_PARTITION_STORAGE_ENGINE=1          将分区存储引擎编译进去
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1       将Performance Schema(性能视图)存储引擎编译进去
-DCOMPILATION_COMMENT=string       编译环境描述
-DWITH_READLINE=bool       是否使用readline库
-DSYSCONFDIR=dir_name my.cnf       参数文件的路径
-DMYSQL_UNIX_ADDR=file_name Unix socket        文件的路径,socket文件用于服务器监听连接,这个参数必须是绝对路径
-DENABLED_PROFILING=bool       是否开启profiling代码的查询(用于SHOW PROFILE and SHOW PROFILES语句)
-DMYSQL_DATADIR=dir_name MySQL       文件目录的路径,这个参数也可以在启动MySQL的时候带上--datadir参数进行设置
-DWITH_EXTRA_CHARSETS=name       指定额外的字符集,默认是all,包含所有的字符集。
-DINSTALL_BINDIR=dir_name      安装用户程序的路径,默认路径是DCMAKE_INSTALL_PREFIX/bin
-DINSTALL_DOCDIR=dir_name      安装文档的路径,默认路径是DCMAKE_INSTALL_PREFIX/doc
-DINSTALL_INCLUDEDIR=dir_name      安装头文件的路径,默认路径是DCMAKE_INSTALL_PREFIX/include
-DINSTALL_LIBDIR=dir_name       安装库文件的路径,默认路径是DCMAKE_INSTALL_PREFIX/lib
-DINSTALL_MANDIR=dir_name      安装帮助手册的路径,默认路径是DCMAKE_INSTALL_PREFIX/man
-DINSTALL_PLUGINDIR=dir_name      安装插件的路径,默认路径是DCMAKE_INSTALL_PREFIX/lib/plugin
-DINSTALL_SBINDIR=dir_name      安装mysqld服务端启动脚本的路径,默认路径是DCMAKE_INSTALL_PREFIX/bin
-DINSTALL_SCRIPTDIR=dir_name      初始化MySQL数据库的数据文件路径的mysql_install_db脚本路径,默认路径是DCMAKE_INSTALL_PREFIX/scripts
-DINSTALL_SQLBENCHDIR=dir_name      安装sql-bench的路径,默认路径是DCMAKE_INSTALL_PREFIX
-DINSTALL_SUPPORTFILESDIR=dir_name      安装支持文件的路径,默认路径是DCMAKE_INSTALL_PREFIX/support-files
-DMYSQL_TCP_PORT=port_num     服务器监听TCP/IP连接的端口,默认是3306

如若要编译进其它功能,如SSL等,则可使用类似如下选项来实现编译时使用某库或不使用某库:
-DWITH_READLINE=1
-DWITH_SSL=system
-DWITH_ZLIB=system
-DWITH_LIBWRAP=0
-------------------------------------------------------------------------------------------------------------------------------------

编译需要较长的时间
[root@mysql-5.6.12 ~]#make
[root@mysql-5.6.12 ~]#make install clean
添加mysql用户,设置mysql目录权限
[root@mysql-5.6.12 ~]# useradd mysql -M -s /sbin/nologin 
[root@mysql-5.6.12 ~]# chown -R mysql:mysql /opt/mysql 
[root@mysql-5.6.12 ~]# chown -R mysql:mysql /opt/data
安装数据库
[root@mysql-5.6.12 ~]# cd /opt/mysql/scripts
[root@scripts ~]#./mysql_install_db --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data 
[root@scripts ~]#cd /opt/mysql/support-files
复制mysql管理脚本
[root@support-files ~]#cp mysql.server /etc/rc.d/init.d/mysql
复制mysql配置文件
[root@support-files ~]#cp my-default.cnf /etc/my.cnf
添加mysql服务
[root@support-files ~]#chkconfig --add mysql
加入开机启动策略
[root@support-files ~]#chkconfig mysql on
[root@support-files ~]#service mysql start

4)nginx+php配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
server {
         listen       80;
         server_name  www.wangshibo.com;
 
         #charset koi8-r;
 
         access_log   /Data/logs/nginx/www .wangshibo.com /access .log main;
         error_log   /Data/logs/nginx/www .wangshibo.com /error .log;
 
         ## maintence
         if  ($remote_addr !~ ^(100.110.15.16|100.110.15.17|100.110.15.18|127.0.0.1)) {              //nginx 访问的白名单限制
           rewrite ^.*$  /maintence .php last;
         }
 
         location / {
             root    /var/www/vhosts/www .wangshibo.com /main ;
         try_files $uri $uri/ @router;
             index  index.php;
         }
 
         location  /nginx_status  {
            stub_status on;
            access_log off;
         }
 
 
         #error_page  404              /404.html;
 
         # redirect server error pages to the static page /50x.html
         #
         error_page   500 502 503 504   /50x .html;
         location =  /50x .html {
             root   html;
         }
     
         location @router {
         rewrite ^.*$  /index .php last;
         }
 
         location ~ \.php$ {
             root        /var/www/vhosts/www .wangshibo.com /main ;
             fastcgi_pass   127.0.0.1:9000;
             fastcgi_read_timeout 30;
             fastcgi_index  index.php;
             fastcgi_param  SCRIPT_FILENAME   /scripts $fastcgi_script_name;                // 这一行最好将 /scripts 换成$document_root,否则可能出现白面
             #include        fastcgi_params;
             include        fastcgi.conf;
         }
     
         location ~ ^/(status| ping )$
         {
            include fastcgi_params;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
         }
 
         }
***************当你发现自己的才华撑不起野心时,就请安静下来学习吧***************


本文转自散尽浮华博客园博客,原文链接:http://www.cnblogs.com/kevingrace/p/5761338.html,如需转载请自行联系原作者
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
51
分享
相关文章
今日小结通过aliyun的本地容器镜像部署我的nginx和php环境
简介: 本教程介绍如何基于 Dragonwell 的 Ubuntu 镜像创建一个运行 Nginx 的 Docker 容器。首先从阿里云容器镜像服务拉取基础镜像,然后编写 Dockerfile 确保 Nginx 作为主进程运行,并暴露 80 端口。最后,在包含 Dockerfile 的目录下构建自定义镜像并启动容器,确保 Nginx 在前台运行,避免容器启动后立即退出。通过 `docker build` 和 `docker run` 命令完成整个流程。
152 24
今日小结通过aliyun的本地容器镜像部署我的nginx和php环境
ELK实现nginx、mysql、http的日志可视化实验
通过本文的步骤,你可以成功配置ELK(Elasticsearch, Logstash, Kibana)来实现nginx、mysql和http日志的可视化。通过Kibana,你可以直观地查看和分析日志数据,从而更好地监控和管理系统。希望这些步骤能帮助你在实际项目中有效地利用ELK来处理日志数据。
268 90
查看Linux、Apache、MySQL、PHP版本的技巧
以上就是查看Linux、Apache、MySQL、PHP版本信息的方法。希望这些信息能帮助你更好地理解和使用你的LAMP技术栈。
61 17
源码编译安装LAMP(HTTP服务,MYSQL ,PHP,以及bbs论坛)
通过以上步骤,你可以成功地在一台Linux服务器上从源码编译并安装LAMP环境,并配置一个BBS论坛(Discuz!)。这些步骤涵盖了从安装依赖、下载源代码、配置编译到安装完成的所有细节。每个命令的解释确保了过程的透明度,使即使是非专业人士也能够理解整个流程。
53 18
如何排查和解决PHP连接数据库MYSQL失败写锁的问题
通过本文的介绍,您可以系统地了解如何排查和解决PHP连接MySQL数据库失败及写锁问题。通过检查配置、确保服务启动、调整防火墙设置和用户权限,以及识别和解决长时间运行的事务和死锁问题,可以有效地保障应用的稳定运行。
192 25
当你的nginx服务器和php服务器不在一起的时候,这个nginx 的root目录问题
两个服务器的网站代码目录需要对齐,docker容器里面也是一样
PHP与MySQL的高效交互:从基础到实践####
本文深入探讨了PHP与MySQL数据库之间的高效交互技术,涵盖了从基础连接到高级查询优化的全过程。不同于传统的摘要概述,这里我们直接以一段精简代码示例作为引子,展示如何在PHP中实现与MySQL的快速连接与简单查询,随后文章将围绕这一核心,逐步展开详细讲解,旨在为读者提供一个从入门到精通的实战指南。 ```php <?php // 数据库配置信息 servername="localhost";username = "root"; password="password";dbname = "test_db"; // 创建连接 conn=newmysqli(se
143 0
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
docker拉取MySQL后数据库连接失败解决方案
通过以上方法,可以解决Docker中拉取MySQL镜像后数据库连接失败的常见问题。关键步骤包括确保容器正确启动、配置正确的环境变量、合理设置网络和权限,以及检查主机防火墙设置等。通过逐步排查,可以快速定位并解决连接问题,确保MySQL服务的正常使用。
358 82
大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL集群架构负载均衡故障排除与解决方案
本文深入探讨 MySQL 集群架构负载均衡的常见故障及排除方法。涵盖请求分配不均、节点无法响应、负载均衡器故障等现象,介绍多种负载均衡算法及故障排除步骤,包括检查负载均衡器状态、调整算法、诊断修复节点故障等。还阐述了预防措施与确保系统稳定性的方法,如定期监控维护、备份恢复策略、团队协作与知识管理等。为确保 MySQL 数据库系统高可用性提供全面指导。
下一篇
oss创建bucket
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等