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. hMailServer SSL 配置

    1.先安装 openssl , 调用如下命令,生成证书: openssl genrsa -des3 - openssl req -new -key alics.key -out alics.req o ...

  2. [Leetcode 376]摇摆序列 Wiggle Subsequence

    [题目] A sequence of numbers is called a wiggle sequence if the differences between successive numbers ...

  3. 小波学习之一(单层一维离散小波变换DWT的Mallat算法C++和MATLAB实现) ---转载

      1 Mallat算法 离散序列的Mallat算法分解公式如下: 其中,H(n).G(n)分别表示所选取的小波函数对应的低通和高通滤波器的抽头系数序列. 从Mallat算法的分解原理可知,分解后的序 ...

  4. kbmMW 5.07.00试用笔记

    在kbmMW 5.06.20试用笔记中遇到的问题,在这个版本中,基本都解决了.但还是发现修正后存在的小问题及新问题: 1.Resolve返回值错误 当提交的ClientQuery是执行一条sql语句, ...

  5. SS报错的解决

    SS报错 AttributeError: /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1: undefined symbol: 解决方案: EVP_CIPHER_ ...

  6. 4--Python入门--Python数据集合类型--集合

    在基础数据类型的基础上,Python有6中数据集合的类型: 列表list,最常用的数据类型,以[]为标识 元组tuple,和list很相似,但是不能二次赋值,用()标识 集合set,和list类似,但 ...

  7. reset.css 文件

    body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,b ...

  8. ORACLE提示表名无效

    在创建ORACLE数据库时,创建表 提示表名无效 请查看数据库表名是否出现了小写字母或者关键字,如USER

  9. js-null 、undefined

    注意:null 转为数值时为0,而 undefined 转为数值时为 NaN. Number(undefined) // NaN Number(null) // 0 null 表示"没有对象 ...

  10. Spring面向切面编程

    在使用面向切面编程时,我们可以在一个地方定义通用的共鞥,但是可以通过声明的方式定义这个功能要以何种方式在何处应用,而无需修改受影响的类.横切关注点可以被模块化为特殊的类,这些类被称为切面.这样的优点是 ...