一、卸载系统预安装的LAMP软件

rpm -qa|grep httpd
rpm -e httpd httpd-tools
rpm -qa|grep mysql
rpm -e mysql mysql-libs
rpm -qa|grep php
rpm -e php-mysql php-cli php-gd php-common php
yum -y remove httpd*
yum -y remove mysql-server mysql mysql-libs
yum -y remove php*

二、添加用户

  添加用户和用户组 www 和 mysql,并且禁止登录。

  www用户主要是用来赋予nginx和php执行权限,mysql主要是赋予给mysql权限,禁止登录是为了防止用户有权限去操作www和mysql,一切为了安全!

 groupadd www
useradd -s /sbin/nologin -g www www
groupadd mysql
useradd -s /sbin/nologin -g mysql mysql

三、添加预安装包

yum -y install gcc gcc-c++ libxml2 libxml2-devel pcre pcre-devel openssl openssl-devel curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libicu libicu-devel cmake ncurses ncurses-devel

  我一般都会将安装包放到/usr/local/src目录中,所以先执行下面的命令 

cd /usr/local/src

  首先安装libmcrypt包 如果下面的下载地址不好用,请访问这个网址进行下载:https://sourceforge.net/projects/mcrypt/...

cd /usr/local/src
wget -c http://soft.vpser.net/web/libmcrypt/libmcrypt-2.5.8.tar.gz
tar zxvf libmcrypt-2.5..tar.gz
cd libmcrypt-2.5.
./configure
make && make install
/sbin/ldconfig
cd libltdl/
./configure --enable-ltdl-install
make && make install
ln -sf /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
ln -sf /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so
ln -sf /usr/local/lib/libmcrypt.so. /usr/lib/libmcrypt.so.
ln -sf /usr/local/lib/libmcrypt.so.4.4. /usr/lib/libmcrypt.so.4.4.
ldconfig

四、安装 nginx

  我安装使用的是 nginx-1.9.12

cd /usr/local/src
wget -c http://nginx.org/download/nginx-1.9.12.tar.gz
tar zxvf nginx-1.9..tar.gz
cd nginx-1.9.
#nginx1..5之前的
#./configure --prefix=/usr/local/nginx --user=www --group=www --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --with-http_ssl_module --with-pcre --with-http_stub_status_module --with-http_spdy_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module
#nginx1..5之后的(包含1.9.5)
#./configure --prefix=/usr/local/nginx --user=www --group=www --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --with-http_ssl_module --with-pcre --with-http_stub_status_module --with-http_v2_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module
make && make install

  ./configure 参数解释:

--prefix=/usr/local/nginx #nginx的安装路径
--user=www #设置nginx工作进程的用户
--group=www #设置nginx工作进程的用户组
--without-mail_pop3_module #禁用nginx处理/代理POP3协议
--without-mail_imap_module #禁用nginx处理/代理IMAP协议
--without-mail_smtp_module #禁用nginx处理/代理SMTP协议
--with-http_ssl_module #使用https协议
--with-pcre #启用pcre库,支持重写
--with-http_stub_status_module #提供查看服务器统计信息的能力
--with-http_v2_module #提供HTTP/2服务。从nginx1..5开始,http_v2_module 已经替换了http_spdy_module。所以安装之前的版本将该参数替换为--with-http_spdy_module(启动SPDY支持,SPDY可以缩短网页的加载时间,但是必须使用ssl传输协议)
--with-http_gzip_static_module #启用预压缩(gzip)的支持
--with-ipv6 #支持ipv6访问
--with-http_sub_module #启用过滤器支持

  启动nginx的命令:

/usr/local/nginx/sbin/nginx

五、安装php

cd /usr/local/src
wget -c http://cn2.php.net/distributions/php-7.0.4.tar.gz
tar zxvf php-7.0..tar.gz
cd php-7.0.
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir=/usr/local/freetype --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --enable-intl --enable-pcntl --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --enable-fileinfo --enable-opcache --enable-session --with-fpm-user=www --with-fpm-group=www --without-pear --enable-exif --enable-json --enable-pdo
make && make install

  这样php就安装完成了。然后接下来创建软连接:

ln -sf /usr/local/php/bin/php /usr/local/bin/php

  生成php.ini配置文件,这里有两个php.ini,适合开发场景和生产场景,可以根据需要选择不同的配置文件,一般选择前者

cp php.ini-development /usr/local/php/etc/php.ini #开发版本
cp php.ini-production /usr/local/php/etc/php.ini #生产版本

  这时候php就已经安装完成了。接下来就是启用php-fpm服务了。

  首先生成配置文件

mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
mv /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

  启动php-fpm的准备工作

cp /usr/local/src/php-7.0./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
chkconfig php-fpm on

  这个时候,使用如下命令就可以启动php-fpm了

service php-fpm start

  启动起来之后,编辑nginx配置文件,实现nginx的代理访问,找到如下代码:

vim /usr/local/nginx/conf/nginx.conf
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /script$fastcgi_script_name;
# include fastcgi_params;
#}

  把前面的#注释符号去掉,把script改成$document_root,第二行 html 改成你的项目路径,这里我设置的/home/www/default 最终代码如下:

location ~ \.php$ {
root /home/www/default;
fastcgi_pass 127.0.0.1:;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /$document_root$fastcgi_script_name;
include fastcgi_params;
}

  修改完成之后,先执行nginx配置检测命令,如果没有错误就执行重新加载配置文件的命令:

/usr/local/nginx/sbin/nginx -t #配置检测命令
/usr/local/nginx/sbin/nginx -s reload #动态加载配置命令

  我们去/home/www/default目录下创建一个php文件。浏览一下是否正常:

<?php
  phpinfo();
?>

  如果能正确的显示php的当前信息,就说明我们工作已经完成了一大半了。

六、安装mysql:

  mysql5.7.5之后版本都要安装boost包。所以我选择是下载已经自带boost安装包的mysql安装包:

cd /usr/local/src
wget -c http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.11.tar.gz
tar zxvf mysql-boost-5.7..tar.gz
cd mysql-5.7./
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_INNOBASE_STORAGE_ENGINE= -DWITH_ARCHIVE_STORAGE_ENGINE= -DWITH_BLACKHOLE_STORAGE_ENGINE= -DMYSQL_TCP_PORT= -DWITH_BOOST=boost -DENABLE_DOWNLOADS=
make && make install
chown -R mysql:mysql /usr/local/mysql #对mysql目录进行赋予权限

  mysql configure 安装参数解释:

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql #指定安装路径
-DDEFAULT_CHARSET=utf8mb4 #默认使用utf8mb4字符
-DDEFAULT_COLLATION=utf8mb4_general_ci #校验字符
-DWITH_INNOBASE_STORAGE_ENGINE= #安装innodb引擎
-DWITH_ARCHIVE_STORAGE_ENGINE= #安装archive存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE= #安装blackhole存储引擎
-DMYSQL_TCP_PORT= #指定端口
-DWITH_BOOST=boost #指定boost的安装位置
-DENABLE_DOWNLOADS #是否要下载可选的文件。例如,启用此选项(设置为1),cmake将下载谷歌所使用的测试套件运行单元测试。

  生成mysql配置文件

cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

  对数据库进行初始化,这个时候初始化的时候,屏幕上会出现初始化的密码,记下来,如果错过了,可以通过查看 /root/.mysql_secret 来查看之前的初始化密码:

/usr/local/mysql/bin/mysqld --initialize --user=mysql

  复制文件mysql.server 可以使用service 命令进行控制

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
service mysql start #启动mysql

  登录数据库修改密码

/usr/local/mysql/bin/mysql -u root -p

  输入密码回车。登录成功后,输入以下字符,来修改密码,比如我的密码是12345:

set password = password('root');

  写一个php程序,来测试mysql是否能否正常连上MySQL:

<?php
  $pdo = new PDO("mysql:host=127.0.0.1;dbname=sys;port=3306", 'root', 'root', array(PDO::MYSQL_ATTR_INIT_COMMAND => 'set names utf8mb4', PDO::ATTR_TIMEOUT => 1));
  var_dump($pdo);
?>

 

CentOS下编译安装LNMP环境的更多相关文章

  1. centos下编译安装lnmp

    centos下编译安装lnmp 本文以centos为背景在其中编译安装nginx搭建lnmp环境. 编译安装nginx时,需要事先安装 开发包组"Development Tools" ...

  2. CentOS 6.4 linux下编译安装 LNMP环境

    1.nginx编译安装 2.PHP编译安装 3.mysql编译安装 4.NGINX配置模板 5.CentOS 6.4 php-fpm 添加service 添加平滑启动/重启

  3. CentOS编译安装LNMP环境

    这里是教大家如何在centos下利用源码编译安装LNMP环境. 工具/原料 centos服务器一台 自用电脑一台 准备篇 配置好IP.DNS .网关,确保使用远程连接工具能够连接服务器 配置防火墙,开 ...

  4. Centos 6.8编译安装LNMP环境

    Centos 6.8编译安装LNMP环境 参考资料: http://www.jb51.net/article/107429.htm https://phperzh.com/articles/1360 ...

  5. SaltStack之编译安装LNMP环境

    使用saltstack编译安装LNMP环境 一,系统版本查看 二,安装salt-master和salt-minion 安装配置过程参考SaltStack概述及安装 三,修改配置文件 /etc/salt ...

  6. CentOS6.5下编译安装LAMP环境

    LAMP(Linux-Apache-MySQL-PHP)网站架构是目前国际流行的Web框架.该框架能够满足大流量.大并发量的网站需求:当然.也可以直接使用高性能的服务器.高性能的负载均衡硬件以及CDN ...

  7. 转:在CentOS下编译安装GCC

    转:https://teddysun.com/432.html 在CentOS下编译安装GCC 技术  秋水逸冰  发布于: 2015-09-02  更新于: 2015-09-02  6519 次围观 ...

  8. CentOS 下编译安装Apache

    CentOS 下编译安装Apache 卸载原有的apache 首先从 http://httpd.apache.or 下载apache源码包httpd-2.4.4.tar.gz然后从 http://ap ...

  9. centos下编译安装mysql5.6

    CentOS 6.4下编译安装MySQL 5.6.14 参考:http://www.cnblogs.com/xiongpq/p/3384681.html 概述: CentOS 6.4下通过yum安装的 ...

随机推荐

  1. Git 常用命令和 Git Flow 梳理

    git 用 git 有一段时间了,之前没有详细地了解 git flow,导致协作过程中或多或少出现了一些头疼问题.最近静下心来理了下 git flow 的整个流程,再回头看开朗了不少,总结到这里.介绍 ...

  2. 第三天 RHEL7-Unix/Linux系统 介绍

    如何称为一名优秀的linux运维人员? 如果你有机会和条件:环境能够磨练一个人的能力和意志. 大胆的做你从未做过的项目,每一个项目都是对自身的极大提升. 有好的环境资源不要浪费,好好把握,慢慢进步. ...

  3. 从工程角度看C++观察者模式中的接口是否需要提供默认的实现

    在C++中,我们会经常用到观察者模式(回调模式,Delegate模式等,意思都一样),比如当Source中的某个参数发生了变化时,我们通过观察者模式进行回调通知,下面是一个例子: class Sour ...

  4. day32 Python与金融量化分析(二)

    第一部分:金融与量化投资 股票: 股票是股份公司发给出资人的一种凭证,股票的持有者就是股份公司的股东. 股票的面值与市值 面值表示票面金额 市值表示市场价值 上市/IPO: 企业通过证券交易所公开向社 ...

  5. Windows 系统cmd设置添加静态路由方式

    电脑上添加静态路由,cmd设置路由 方法/步骤 1.首先在“运行”窗口输入cmd(按WIN+R打开运行窗口),然后回车进入命令行,输入 route  add  10.253.251.0  mask   ...

  6. Linux 磁盘管理,Linux vi/vim

    一.Linux 磁盘管理 Linux磁盘管理好坏直接关系到整个系统的性能问题. Linux磁盘管理常用三个命令为df.du和fdisk. df:列出文件系统的整体磁盘使用量 du:检查磁盘空间使用量 ...

  7. Hugepages,hugetlb_shm_group与ORA-27125

    Hugepages,hugetlb_shm_group与ORA-27125 转载:http://www.eygle.com/archives/2011/12/hugepageshugetl.html ...

  8. vue创建组件

    vue创建组件是很容易的: js: Vue.component("component-item",{   //component-item就是我们在HTML页面上引用的组件,它会在 ...

  9. *SCM-MANAGERtomcat寄宿使用

    采用的部署方式 TomCat 一个端口下部署多个 Application供不同部门使用 初始部署详参见 SCM-MANAGER 博文 日常使用添加部门操作步骤 从“D:\tomcat\webapps” ...

  10. 进程与网络监控和ssh简单使用

    进程的概念和管理 进程: 正在执行的程序 线程: 轻量级的进程 进程有独立的地址空间,线程没有 线程不能独立存在,它是由进程创建.Thread1.在linux中,每个执行的程序都称为一个进程.每一个进 ...