1.安装准备


建一个目录用于存放各软件包的压缩文件, 如我把我的源码文件都放在了 /software目录下

切换到/software目录下,执行

wget http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.95.tar.gz/from/http://mysql.cdpa.nsysu.edu.tw/  (mysql)

wget http://mirrors.sohu.com/nginx/nginx-1.9.4.tar.gz (nginx)

wget http://mirrors.sohu.com/php/php-5.6.9.tar.gz (php)

wget http://mirrors.sohu.com/apache/httpd-2.4.16.tar.gz (Apache)

用 tar -zxvf 压缩包名  解压相关压缩包

用 yum remove httpd php* 移除已安装的相应包

如果移除不成功则只能rm -rf mysql nginx php zend 的方式来删除安装包

安装相关组件包

yum -y install gcc gcc-c++ libjpeg-devel libpng-devel libtiff-devel fontconfig-devel freetype-devel libXpm-devel gettext-devel openssl-devel libtool-ltdl-devel

2.安装nginx


安装nginx依赖包:yum  -y install zlib-devel pcre-devel openssl-devel

预编译

cd nginx-1.9.4
./configure --prefix=/usr/local/nginx     # 指定安装目录为/usr/local/nginx
--with-openssl=/usr/include/openssl      # 启用ssl
--with-pcre                                                    # 启用正规表达式
--with-http_stub_status_module              # 安装可以查看nginx状态的模块

(--前面必须留一个空格,否则会报错)

编译和安装

make && make install

启用nginx

/usr/local/nginx/sbin/nginx

可以用以下命令来简化启动路径

cp  /usr/local/nginx/sbin/nginx  /etc/init.d

(原本是想通过chkconfig命令来设置自启动的,没有成功,有待研究,最后就只有通过vi /etc/rc.d/rc.local 来写入 /etc/init.d/nginx)

查看nginx是否启动 pgrep  nginx  或用 ps -A | grep nginx

如果返回有结果就说明nginx已启动

可以在浏览器中输入地址查看

这个页面其实对应的就是/usr/local/nginx/html/index.html这个页面

3.安装mysql

cd mysql-5.0.95
./configure --prefix=/usr/local/mysql --without-debug --with-extra-charsets=utf8,gbk --enable-assembler --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static --with-unix-socket-path=/tmp/mysql.sock --with-ssl
(--without-debug                                          # 取消调试模式提高性能
--with-extra-charsets=utf8,gbk # 仅仅指定需要的默认字符集提高性能
--enable-assembler # 使用汇编模式提高性能
--with-mysqld-ldflags=-all-static # 以静态方式编译提高性能
--with-client-ldflags=-all-static
--with-unix-socket-path=/tmp/mysql.sock # 使用unix socket提高性能)
make && make install

安装完成后复制配置文件和启动脚本:

cp support-files/my-medium.cnf     /etc/my.cnf         # 复制配置文件
cp support-files/mysql.server /etc/init.d/mysqld # 复制启动脚本
chmod +x /etc/init.d/mysqld # 给启动脚本执行权限
(这一步一定要执行,因为mysqld默认没有可执行权限,若不执行则在执行service mysqld start 时会提示这个命令不被允许,或者执行chmod 755 /etc/init.d/mysqld)

为了以后方便我们为所有的二进制可执行文件和动态链接库文件做一个软连接(可不做):

ln -s /usr/local/mysql/bin/*      /usr/local/bin/       # 为可执行的二进制文件做软连接
ln -s /usr/local/mysql/lib/mysql/lib* /usr/lib/ # 为动态链接库做一个软连接


初始化数据库:
mysql_install_db --user=mysql  # 用MySQL用户安装数据库


启动mysql:
方法很多,如
service mysqld start
/etc/init.d/mysqld start
/etc/rc.d/init.d/mysqld start
如若启动失败可查看这篇博客的解决方案http://zhangge.net/4225.html
如我碰到过
是因为在启动mysql之前没对他进行初始化

/usr/local/mysql/bin/mysql_install_db --user=mysql

这个方法解决了

查看是否启动 pgrep mysql 或 netstat -antpl | grep 3306
 

使用mysql

4.安装php


首先得安装php的几个依赖包

yum -y install  libmcrypt mhash mcrypt libxml2-devel curl-devel libpng-devel openldap-devel


如果已经安装就可以不安装了

cd php-5.6.9
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql/ --with-zlib --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --with-curl --enable-fpm --with-mcrypt --with-gd --with-openssl --with-mhash --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc -enable-zip --enable-soap --with-iconv=/usr/local/libiconv
make && make install
(这个地方编译得小一会儿)
编译时也有可能出错,比如我碰到过如下的错误
主要是因为libiconv依赖没有安装
解决方法 http://lynnteng0.blog.51cto.com/2145094/1257910
也有可能会出现类似的编译错误,根据提示到网上去找解决方案即可,一般都能找到
编译完后就得改一些配置了

cp /software/php-5.6.9/php.ini-production      /usr/local/php/php.ini      # 如果是开发就复制php.ini-development
cp /usr/local/php/etc/php-fpm.conf.default     /usr/local/php/etc/php-fpm.conf

配置php-fpm,编辑php-fpm.conf
vi /usr/local/php/etc/php-fpm.conf

找到listen那一行,修改成如下内容:
listen = /var/run/php-fpm/php-fpm.sock   # 使用unix socket(原本是没有这个php-fpm.sock的,等启动php-fpm之后就有了)

启动php-fpm
mkdir /var/run/php-fpm
/usr/local/php/sbin/php-fpm (启动php-fpm)

然后配置nginx,编辑nginx配置文件
vi /usr/local/nginx/conf/nginx.conf
修改的地方 :
@1.修改用户和开启日志功能(www用户得自己建一个,日志功能强烈建议开启)

@2.修改根目录并制定可被解析的脚本格式

@3.修改通信协议
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
@4.更改php-fpm的配置文件
vim  /usr/local/php/etc/php-fpm.conf
修改
listen.owner = www
listen.group = www
listen.mode = 0660
将这个文件的user和group指定为www用户
修改完后保存退出 然后重启nginx (关闭pkill -9 nignx   启动/usr/local/nginx/sbin/nginx)和php-fpm (/usr/local/php/sbin/php-fpm)
(当然配置中的用户和群组以及代码跟路径可根据自己喜好做相应变化)
5.写php代码 用于验证
在/home/www/test目录下创建index.php (test目录下及所包含的文件的权限是777 chmod –R 777 test)
<? php
echo phpinfo()
?>
在地址栏中运行localhost若出现如下页面就说明一切ok了
如果没有出现也没啥着急的看看错误日志呗
vim /usr/local/nginx/logs/error.log
比如这是我的一次错误日志 ,主要是/var/run/php-fpm/php-fpm.sock 没有可执行的权限,用chmod命令赋予可执行权限即可(无需再次启动php-fpm和nginx,如果改了相关配置的话就需要重启这两个软件)

lnmp安装总结的更多相关文章

  1. 服务器运行环境(LNMP)安装说明

    服务器运行环境(LNMP)安装说明 因为公司需要一套流程标准,所以写了如下步骤. 先下载文件environment.tar,将文件上传到服务器. 使用命令解压文件,tar xvf environmen ...

  2. LNMP安装Let’s Encrypt 免费SSL证书方法:自动安装与手动配置Nginx

    前几天介绍了最新StartSSL免费SSL申请与配置,很多人看到部落介绍SSL证书安装时总是推荐了OneinStack,因为OneinStack提供了一键添加和配置Let's Encrypt 免费SS ...

  3. LNMP安装,FastCGI说明

    1.1.工作原理讲解说明 1. 用户请求的静态文件,由nginx服务器处理,根据静态的location配置进行处理 用户请求的动态文件,由php服务进行处理,根据动态的location配置进行处理 2 ...

  4. LNMP安装201812012237

    发表这篇文章最初的意愿是想做个最新版的zabbix使用,后来看了下好多“软件”都升级了(如nginx.mysql等),就想干脆做个最新版本的LNMP环境得了,再单独做zabbix的最新版本省得以后升级 ...

  5. LNMP安装目录及配置文件

    LNMP安装目录及配置文件位置 LNMP相关软件安装目录Nginx 目录: /usr/local/nginx/MySQL 目录 : /usr/local/mysql/MySQL数据库所在目录:/usr ...

  6. WDCP,LNMP安装PHP缓存加速扩展eAccelerator,xcache和memcached

    VPS主机性能配置如果太差,则在运行Wordpress博客和Discuz! 论坛等高消耗程序时能够明显感觉出VPS有些吃力.另外,即使VPS主机的CPU.内存.硬盘I/O等性能足够好,但是在面对大流量 ...

  7. centos LNMP第一部分环境搭建 LAMP LNMP安装先后顺序 php安装 安装nginx 编写nginx启动脚本 懒汉模式 mv /usr/php/{p.conf.default,p.conf} php运行方式SAPI介绍 第二十三节课

    centos  LNMP第一部分环境搭建 LAMP安装先后顺序  LNMP安装先后顺序 php安装 安装nginx  编写nginx启动脚本   懒汉模式  mv   /usr/local/php/{ ...

  8. lnmp安装exif扩展

    lnmp安装exif扩展 1.找到位置 cd /usr/local/lnmp1.4-full/src 2.解压php sudo bzip2 -d php-5.6.31.tar.bz2 sudo tar ...

  9. lnmp安装mysql

    lnmp安装mysql 下载lnmp wget http://soft.vpser.net/lnmp/lnmp1.6.tar.gz 解压 tar ‐xf lnmp1..tar.gz 安装数据库 ./i ...

  10. linux lnmp安装2个版本PHP教程

    linux lnmp安装2个版本PHP教程我原先装了5.6版本的PHP 后来想装个PHP7.0.14版本 一方面看看稳定性 另一方面看看性能怎么样 其实原理很简单 php-fpm开启了1个端口来管理P ...

随机推荐

  1. μC/OS-II在Microblaze上的移植与使用专题--“安富利杯”赛灵思FPGA设计技巧与应用创新博文大赛参赛作品

    reference:http://xilinx.eetrend.com/d6-xilinx/blog/2010-05/682.html   随着集成电路设计与制造技术的发展,FPGA芯片的容量越来越大 ...

  2. RandomStringUtils的使用

    //产生5位长度的随机字符串,中文环境下是乱码 RandomStringUtils.random(5); //使用指定的字符生成5位长度的随机字符串 RandomStringUtils.random( ...

  3. Final发布

    作业要求[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2476] 文案+美工[https://www.cnblogs.com/erciy ...

  4. TensorFlow函数:tf.truncated_normal

    tf.truncated_normal函数 tf.truncated_normal( shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, ...

  5. Python 基础day3

    1.简述bit,byte,kb,MB,GB,TB的关系 1TB=1024GB;   1GB=1024MB ;  1MB=1024kb: 1kb=1024byte ; 1byte=8bit 2.简述as ...

  6. JavaWeb:一个Servelt多个请求

    一个Servelt多个请求 基础模拟 方法一:使用switch方法  一.方法介绍 方法:switch 优点:方法简单,明了 缺点:维护麻烦,保密性不好 二.代码实现 1.servlet类 packa ...

  7. Python库,让你相见恨晚的第三方库

    环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具.pyenv – 简单的 Python 版本管理工具.Vex – 可以在虚拟环境中执行命令.virt ...

  8. python day05--字典

    一.字典结构 {key:valu} 注意: key必须是不可变(可哈希)的. value没有要求.可以保存任意类型的数据. dic = {123: 456, True: 999, "id&q ...

  9. 【Python】进程-控制块

    一.进程控制块 PCB (Process Control Block): 存放进程的管理和控制信息的数据结构称为进程控制块.它是进程管理和控制的最重要的数据结构,每一个进程均有一个PCB,在创建进程时 ...

  10. 对jQuery ajax的认识

    1.ajax() 方法通过 HTTP 请求加载远程数据. 2.该方法是 jQuery 底层 AJAX 实现.简单易用的高层实现见 $.get, $.post 等.$.ajax() 返回其创建的 XML ...